MissingResourceException в Tomcat, но не в Java EE Server

Мы разрабатываем веб-приложение в Eclipse, которое отлично работает для меня, поскольку я развертываю его с сервером Java EE Preview, однако мой коллега получает исключение MissingResourceException для файла интернационализации «messages.properties», хотя Tomcat успешно развертывает файл ресурсов в WEB- ИНФ/классы.

private static final ResourceBundle RESOURCE_BUNDLE = resourceBundle.getBundle("mypackage.messages");

Структура пакета такая:

mypackage/Messages.java (.class в Tomcat .../WEB-INF/classes)

мой пакет/messages.properties

мой пакет/messages_de_DE.properties

Поскольку загрузчик классов успешно загружает класс Messages, я не понимаю, почему он не находит файл messages.properties, хотя он находится точно в том же каталоге. У нас обоих немецкий язык.

Что я могу здесь сделать? Ошибка:

java.util.MissingResourceException: Can't find bundle for base name messagebundle, locale de_DE
java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499)
java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322)
java.util.ResourceBundle.getBundle(ResourceBundle.java:724)
de.uni_leipzig.simba.saim.SAIMApplication.<clinit>(SAIMApplication.java:29)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
java.lang.reflect.Constructor.newInstance(Constructor.java:525)
java.lang.Class.newInstance0(Class.java:372)
java.lang.Class.newInstance(Class.java:325)
com.vaadin.terminal.gwt.server.ApplicationServlet.getNewApplication(ApplicationServlet.java:82)
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.createApplication(AbstractApplicationServlet.java:978)
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.findApplicationInstance(AbstractApplicationServlet.java:801)
com.vaadin.terminal.gwt.server.AbstractApplicationServlet.service(AbstractApplicationServlet.java:456)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)

person Konrad Höffner    schedule 22.03.2012    source источник


Ответы (1)


ОК, я решил проблему, следуя потоку stackoverflow MissingResourceException из-за объединения загрузчика классов (вызывающий объект не в WEB-INF/классах)

Что было исправлено

    ClassLoader cl = Thread.currentThread().getContextClassLoader();

ResourceBundle rb = ResourceBundle.getBundle(textproperties, locale, cl);

person Konrad Höffner    schedule 23.03.2012