读取属性文件位于/ ear / war中,来自ear / lib / * .jar

时间:2015-10-22 04:48:54

标签: java-ee glassfish-3 ear

我正在将应用程序从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内的属性文件吗?

耳朵结构

enter image description here

1 个答案:

答案 0 :(得分:3)

您依赖于GlassFish2中的错误。

EAR / lib和EJB中的类永远不应该能够访问WAR中的资源。它只允许反过来。

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