我有一个具有以下结构的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
?
答案 0 :(得分:0)
应该没问题。在编译期间,由于您在Maven中提供了specialBeanlib.jar作为依赖项,因此在编译mywar1和mywar2模块期间它应该出现在类路径中。在运行期间,由于speicalBeanlib.jar位于ear \ lib文件夹中,该文件夹位于war类加载器的父类加载器中,因此bean类也应该正常加载。