访问资源包时遇到MissingResourceException。由于我的特定类加载器constallation,问题出现了。
我正在尝试从位于JBOSS_HOME / server / myServer / myDeployDir / myEAR / myJAR.jar下的类中读取text.properties(注意:调用类不在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上运行,所以我想我必须记住Web服务器线程处理。
感谢您的帮助, 贡纳尔
答案 0 :(得分:3)
您可以指定类加载器作为getBundle的附加参数。在Web应用程序中,这很可能是当前线程的上下文类加载器:
ClassLoader cl = Thread.currentThread().getContextClassLoader();
ResourceBundle rb = ResourceBundle.getBundle(textproperties, locale, cl);