可能在EAR / lib文件夹里面的jar中的Bean?

时间:2013-02-15 14:43:26

标签: java-ee dependency-injection ejb ear

我有一个具有以下结构的EAR:

myapp.ear
...META-INF
......application.xml
...lib
......common.jar
......specialBeanlib.jar
...myejb.jar
...mywar1.war
...mywar2.war

正如您所见,common.jar和specialBeanlib.jar位于EAR lib文件夹中。

myejb.jar包含服务类。
mywar1.war包含用户gui。
mywar2.war包含admin-gui。

ejb和war模块是从单独的maven项目构建的,并在application.xml文件中引用。文件specialBeanlib.jar在两个Web项目中都被引用为提供的依赖项,并且在ejb项目中被称为正常依赖项,因此它存储在EAR lib文件夹中。它显然不应该是一个自己的ejb模块。

问题:我可以使用任何豆类吗?一个@ApplicationScoped Bean,位于 specialBeanlib.jar 文件中,因此可以从 mywar1.war mywar2.war 访问它@Inject

1 个答案:

答案 0 :(得分:0)

应该没问题。在编译期间,由于您在Maven中提供了specialBeanlib.jar作为依赖项,因此在编译mywar1和mywar2模块期间它应该出现在类路径中。在运行期间,由于speicalBeanlib.jar位于ear \ lib文件夹中,该文件夹位于war类加载器的父类加载器中,因此bean类也应该正常加载。