Eclipse EAR项目放置EJB项目使用Glassfish3.1.2和JavaEE6使用的属性文件的位置

Eclipse EAR项目放置EJB项目使用Glassfish3.1.2和JavaEE6使用的属性文件的位置,eclipse,classloader,java-ee-6,ear,Eclipse,Classloader,Java Ee 6,Ear,我在EAR项目中的.properties文件有问题。 我已经在svf和其他董事会上检查了一些关于这个问题的主题 我在EJB项目中使用Util的属性文件,但无法访问它们。 参考jboss论坛上的一篇文章,我已经尝试将它们放在EAR项目和EarContent/lib/classes/中的META-INF下。。遗憾的是,它没有起作用。 我仍然得到这个错误: 严重:java.util.MissingResourceException:找不到base的捆绑包 名称凭据,区域设置en_US at java.

我在EAR项目中的.properties文件有问题。 我已经在svf和其他董事会上检查了一些关于这个问题的主题

我在EJB项目中使用Util的属性文件,但无法访问它们。 参考jboss论坛上的一篇文章,我已经尝试将它们放在EAR项目和EarContent/lib/classes/中的META-INF下。。遗憾的是,它没有起作用。 我仍然得到这个错误:

严重:java.util.MissingResourceException:找不到base的捆绑包 名称凭据,区域设置en_US at java.util.ResourceBundle.throwMissingResourceExceptionResourceBundle.java:1499 位于java.util.ResourceBundle.getBundleImplResourceBundle.java:1322 位于java.util.ResourceBundle.getBundleResourceBundle.java:724处 com.lumen.Utils.PropsUtil.loadPropertiesPropsUtil.java:50

我尝试通过以下方式访问道具文件: 第50行: ResourceBundle rb=ResourceBundle.getBundlecredentials

我的项目结构如下所示:

耳朵

->耳内容物

->解放党

-->someexternallibs.jar

-->班级

-->*.物业

->META-INF

->*.物业

->application.xml

EJB

->src

->package.package.UtilEAR结构中不允许类文件夹

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

如果使用简单的

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

ResourceBundle.getBundle("bundlename",Locale.getDefault(),Thread.currentThread.().getContextClassLoader())
EAR结构中不允许使用classes文件夹

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

如果使用简单的

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

ResourceBundle.getBundle("bundlename",Locale.getDefault(),Thread.currentThread.().getContextClassLoader())

不客气。记住接受或投票你认为有用的答案。你能确切地说明你是如何做到这一点的吗?这里也有同样的问题。@Fritz我在github上上传了一个例子:嗨@Carlo Pellegrini,你知道这个解决方案是否符合EJB规范吗?我在这里发现,EJB规范禁止访问本地文件。不客气。记住接受或投票你认为有用的答案。你能确切地说明你是如何做到这一点的吗?这里也有同样的问题。@Fritz我在github上上传了一个例子:嗨@Carlo Pellegrini,你知道这个解决方案是否符合EJB规范吗?我在这篇文章中发现,EJB规范禁止访问本地文件?