EJB-JAR中的第三方库

时间:2013-08-14 07:39:22

标签: java java-ee ejb java-ee-6 ejb-3.1

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

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

Arjan Tijms以Java EE - EAR vs separate EJB+WAR三种方式展示,为了清除它,我想要选项2。

我自己的研究主要涉及以下答案J2EE: How to package 3rd party JARs into an EJB jar?的问题,但我不想要一个EAR文件。

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

2 个答案:

答案 0 :(得分:3)

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

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

application.xml

答案 1 :(得分:0)

罐子不应该包含罐子。

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