从 ear/lib/*.jar 中读取位于 /ear/war 中的 属性 文件

Read property file resides in /ear/war from ear/lib/*.jar

我正在将应用程序从 glassfish 2 迁移到 glassfish 3,遇到了以下问题。

我有 war 文件和 属性 文件,它从常见的 属性 加载 jar 读取,读起来像 PropUtil.class.getResourceAsStream('/my.properties' ).

在 glassfish 2 中,我能够毫无问题地读取 属性 文件,但是,当我迁移到 glassfish 3 时,它找不到 属性 文件。

进行了一些调试,发现 Glassfish 2 使用 EJBClassLoader 加载 属性,而 glassfish 3 使用 EarLibClassLoader 加载。

我可以从 glassfish3/jee6 中 ear/lib 中的 jar 中读取 war 中的 属性 文件吗?

耳朵结构

您依赖的是 GlassFish2 中的错误。

EAR/lib 中的

类 和 EJB 永远不能访问 WAR 中的资源。只允许反过来。

重新设计你的方法。要么将该公共库移动到 WAR/WEB-INF/lib。或者,将该属性文件移动到 EAR/lib.