2

我的 EAR 项目中的 .properties 文件有问题。我已经在 svf 以及其他板上检查了有关此问题的一些主题。

我在我的 EJB 项目中使用 Util 的属性文件,但我无法访问它们。参考 jboss-forum 中的帖子,我已经尝试将它们放在 EAR-Project 和 EarContent/lib/classes/ 中的 META-INF 下。遗憾的是它没有用。我仍然收到此错误:

严重:java.util.MissingResourceException:找不到基本名称凭据的包,在 java.util.ResourceBundle.throwMissingResourceException(ResourceBundle.java:1499) 在 java.util.ResourceBundle.getBundleImpl(ResourceBundle.java:1322) 的语言环境 en_US在 java.util.ResourceBundle.getBundle(ResourceBundle.java:724) 在 com.lumen.Utils.PropsUtil.loadProperties(PropsUtil.java:50)

我尝试通过以下方式访问道具文件:第 50 行: ResourceBundle rb = ResourceBundle.getBundle("credentials");

我的项目结构如下所示:

耳朵

->耳朵内容

-->库

---> 一些externallibs.jar

--->类

---->*.properties

->元信息

-->*.properties

-->应用程序.xml

EJB

->源

-->package.package.Util <-- 这里我需要加载属性

Web <-- 这里我根本不需要属性

->源

->网页内容

添加信息:我使用 eclipse 进行开发,到目前为止,项目的其余部分运行良好。

希望你能帮我 :)

格力兹祖色

4

1 回答 1

4

classesEAR 结构中不允许使用文件夹。

因此,首先您应该将资源打包到一个 jar 文件中,该文件可以是已经存在的,也可以是 lib 文件夹中的专用文件。

如果您使用简单的类加载器层次结构,则会出现另一个问题:

ResourceBundle.getBundle(String)

在存在多个类加载器的情况下调用类加载器相关方法的正确方法是指定当前上下文类加载器,如下所示:

ResourceBundle.getBundle("bundlename",Locale.getDefault(),Thread.currentThread.().getContextClassLoader())
于 2012-12-01T21:18:10.903 回答