1

我有一个具有以下结构的 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在文件specialBeanlib.jar中有任何 Bean,例如 Bean,因此可以通过mywar1.warmywar2.war@Inject访问它吗?

4

1 回答 1

0

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

于 2013-02-16T19:38:54.280 回答