我们正在Eclipse中开发一个Web应用程序,当我使用Java EE预览服务器部署它时,我可以很好地工作,但是我的同事得到国际化文件“messages.properties”的MissingResourceException,即使Tomcat成功部署了资源文件到WEB-INF / classes。
private static final ResourceBundle RESOURCE_BUNDLE = resourceBundle.getBundle("mypackage.messages");
包结构如下:
mypackage / Messages.java(Tomcat中的.class ... / 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)
答案 0 :(得分:3)
好的,我已经按照stackoverflow线程MissingResourceException due to class loader constallation (caller not in WEB-INF/classes)
解决了这个问题修正了什么
ClassLoader cl = Thread.currentThread().getContextClassLoader();
ResourceBundle rb = ResourceBundle.getBundle(textproperties,locale,cl);