【问题标题】:MissingResourceException in Tomcat but not in Java EE ServerTomcat 中的 MissingResourceException 但 Java EE 服务器中没有
【发布时间】:2012-04-07 03:35:20
【问题描述】:

我们正在 Eclipse 中开发一个 Web 应用程序,当我使用 Java EE 预览服务器部署它时,它对我来说运行良好,但我的同事却为国际化文件“messages.properties”获得了 MissingResourceException,即使 Tomcat 成功部署了资源文件到 WEB-INF/类。

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)

【问题讨论】:

    标签: eclipse tomcat deployment internationalization resourcebundle


    【解决方案1】:

    好的,我已经按照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);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 2011-01-31
      • 1970-01-01
      • 2012-11-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多