2015-05-27 2 views
0

Мы только что начали использовать iCal4j для генерации файлов iCalendar. Тем не менее, все кажется, что работа работает правильно без часового пояса, однако, как только мы пытаемся получить часовой пояс из реестра (независимо от того, какой временной интервал), он возвращает null, и, следовательно, мы не можем получить VTimeZone.Java Agent XPages: iCal4j TimeZoneRegistry.getTimeZone возвращает null

Вот что мы пробовали:

TimeZoneRegistry registry=TimeZoneRegistryFactory.getInstance().createRegistry(); 
TimeZone timeZone = registry.getTimeZone(TimeZone.getDefault().getID()); // no matter what we pass here, it returns null 
if (timeZone == null) { 
    System.out.println("Timezone is null"); 
}else{ 
    VTimeZone tz=timeZone.getVTimeZone(); //never executed 
} 

Возможно, мы что-то очень маленькое, но не уверен, что нет. Любая помощь здесь будет действительно оценена.

Edit 1:

Просто импортирован тот же самый код на Java проекта Eclipse, и это, кажется, работает правильно. Может ли это иметь какое-то отношение к домино?

ответ

0

ical4j использует различные вызовы ClassLoader.getResourceAsStream() для загрузки VTIMEZONE из jar-файла ical4j, поэтому, если вы находитесь в среде с пользовательским загрузчиком классов, который не разрешает этот тип доступа, все не будет работать.

+0

Спасибо за ответ. Но я считаю, что до этого до него дошла ошибка. Сама часовая зона имеет значение null при извлечении из реестра. Итак, я думаю, что вызов в VTimeZone никогда не будет выполнен. Хотя то, что вы говорите, имеет смысл. Вы можете предложить альтернативу? –

Смежные вопросы