MissingResourceException в Tomcat, но не в Java EE Server - PullRequest
2 голосов
/ 22 марта 2012

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

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

Структура пакета выглядит так:

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

MyPackage / messages.properties

MyPackage / 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)

1 Ответ

3 голосов
/ 23 марта 2012

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

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

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

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

...