我是否可以将所有 EJB 部署描述符放在 EAR 文件的 META-INF 目录中,而不是 EJB jar 文件中



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

耳朵里也有许多 EJB jar 文件,每个文件都包含许多 EJB。出于某些原因,我们希望使用 XML 部署描述符来配置所有 ejb。因此,我们有许多 ejb-jar 文件,每个文件都嵌入在耳朵文件中每个 jar 的 META-INF 文件夹中,就像这样。

EAR_FILE:    :-----元信息:           :: -应用程序.xml:    :    :------EJB_JAR_1:              :: -元信息:                      :: -ejb-jar.xml:------EJB_JAR_2:              :: -元信息:                      :: -ejb-jar.xml:------EJB_JAR_3              :              -元信息信息                      :                      -ejb-jar.xml

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

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

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

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

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

非常感谢,

戴夫。

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

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

最新更新