2

有时我尝试在 EJB-JAR 中添加第三方库。到目前为止,在我看来,这是不可能的,但我不确定,为什么这是不可能的。

我想创建单个 EJB-JAR 和 WAR,而不是将它们放在一个 EAR 中。

Arjan Tijms 在Java EE - EAR 与单独的 EJB+WAR中展示了三种方式,为了澄清它,我想要选项 2。

我自己的研究主要针对以下问题J2EE:如何将 3rd 方 JAR 打包到 EJB jar 中?,但我不想要 EAR 文件。

在 oracle 站点本身上显示了 EJB-JAR 的以下打包:EJB 打包, 它没有像 WAR 那样的自己的 lib 目录。我已经尝试将库放在根目录中(使用 eclipse + JBoss 7)。我的第一个问题是,是否可以将额外的库添加到 EJB-JAR 中,就像在 WAR 文件中一样?这让我很困惑,因为可以将简单的 EJB-JAR 部署到应用程序服务器,但您似乎无法添加第三方库。对我来说,EAR 似乎大多是“矫枉过正”,因为它对我来说没有真正的优势,其次,如果我将库放入 EAR,不同的 EJB-JAR 不会使用来自第三方库的不同版本。我希望 EJB-JAR 完全独立于其他 EJB-JAR 和 WAR。我只创建了一个额外的简单 jar 项目,其中包含必须实现的接口,并添加到每个 EJB 项目和 WAR 项目中。这让我想到了问题 2:我是否使用过 EAR,如果是,为什么?在我看来,我错过了一些还不明白的东西。

4

2 回答 2

3

您可以将第三方 JAR 放在lib/EAR 中的文件夹中并添加

<library-directory>lib</library-directory>

到你的application.xml.

于 2013-08-14T08:14:03.647 回答
0

罐子不应该包含罐子。

我只是将 EJB 打包到 WAR 中(直接在 WEB-INF/classes 中或作为单独的 ejb-jars 在 WEB-INF/lib 中),将第 3 方库放入 WEB-INF/lib 中并称之为一天。您的方法非常有限。您将无法注入 EJB,并且必须使用远程查找。

于 2013-08-14T12:28:19.000 回答