MissingResourceException из-за установки загрузчика классов (вызывающая сторона отсутствует в WEB-INF / classes) - PullRequest
0 голосов
/ 19 декабря 2011

Я получаю исключение MissingResourceException при доступе к пакету ресурсов. Проблема возникает из-за моей конкретной установки загрузчика классов.

Я пытаюсь прочитать text.properties из класса, который находится в JBOSS_HOME / server / myServer / myDeployDir / myEAR / myJAR.jar (примечание: вызывающий класс отсутствует в WEB-INF / classes). Файл text.properties находится здесь: JBOSS_HOME / server / myServer / myDeployDir / myEAR / myWAR / WEB-INF / classes.

При запуске следующий код:

Locale locale = new Locale ("de", "DE");
ResourceBundle rb = ResourceBundle.getBundle(textproperties, locale);

Я получаю следующее

java.util.MissingResourceException: Can't find bundle for base name text, locale de_DE.

К сожалению, я НЕ должен менять структуру своего приложения. Я не могу ни переместить класс вызывающего (теперь в myJAR.jar) в WEB-INF / classes, ни я могу упаковать файл свойств в myJAR.jar. Есть ли способ получить доступ к файлу свойств из-за пределов WEB-INF / classes?

Приложение работает на JBOSS 4.2.3, так что, думаю, мне нужно помнить об обработке потоков веб-сервера.

Спасибо за вашу помощь заранее, Гуннар

1 Ответ

3 голосов
/ 19 декабря 2011

Вы можете указать загрузчик классов для использования в качестве дополнительного параметра для getBundle .В веб-приложении это, скорее всего, загрузчик класса контекста текущего потока:

ClassLoader cl = Thread.currentThread().getContextClassLoader();
ResourceBundle rb = ResourceBundle.getBundle(textproperties, locale, cl);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...