1

我有一个作为 EAR 文件交付的企业应用程序。耳朵内的 META-INF 文件夹包含预期的“application.xml”,以及属于该应用程序的模块列表。

耳朵内还有许多 EJB jar 文件,每个文件都包含许多 EJB。出于某些原因,我们希望使用 XML 部署描述符来配置所有 ejb。因此,我们有许多 ejb-jar 文件,每个文件都嵌入到 ear 文件中每个 jar 的 META-INF 文件夹中,如下所示。

EAR_FILE
:     
:-----META-INF
: :
:-应用程序.xml
:     
:     
:--------EJB_JAR_1
: :
: -META-INF
: :
:-ejb-jar.xml
:--------EJB_JAR_2
: :
: -META-INF
: :
:-ejb-jar.xml
:-----EJB_JAR_3
              :
              -META-INF
                      :
                      -ejb-jar.xml


如您所见,这会产生许多单独的 ejb-jar.xml 部署描述符。我们希望能够将其集中到一个部署描述符中,该描述符定义了应用程序中的所有 ejb。

此外,我们希望将单独的 ejb jar 文件保存在耳朵中,而不是将它们全部放在一个耳朵中。

是否可以在包含应用程序中所有 EJB 配置的 ear 文件的 META-INF 文件夹中有一个“主”ejb-jar 文件?

或者甚至可以将 ejb-jar 文件放在包含 EJB 的实际 jar 之外?

归根结底,我真正想要实现的是将所有 ejb 部署描述符集中到某个文件中,而不是像上面那样让它们分布在每个单独的 EJB jar 中?

非常感谢,

戴夫。

4

1 回答 1

0

或者甚至可以将 ejb-jar 文件放在包含 EJB 的实际 jar 之外?

是的,但更准确地说:可以在 EJB 模块 JAR 之外拥有 EJB 类。换句话说,你可以用一个ejb-jar.xml创建一个单独的EJB模块,然后把所有的EJB_JAR_1、EJB_JAR_2等放到EAR/lib/目录下,这样就自动让所有的JAR对所有的EJB可见了EAR 中的模块(或者,在您的情况下为单个 EJB 模块)。Class-Path: ejb-1.jar ejb-2.jar或者,您可以在 EJB 模块 META-INF/MANIFEST.MF 中手动维护一个列表,但这需要更多的工作。

于 2012-05-12T17:04:14.433 回答