多个战争共享公共EJB JAR

时间:2015-01-07 17:25:59

标签: jboss7.x ejb-3.0 war ear

我有一个包含许多EJB的jar,我需要访问来自多个WAR的那些。我正在尝试找出将这些打包并部署到单个应用服务器的最佳方法。

目前,我单独部署每个WAR,每个WAR都依赖于公共EJB jar,但这似乎非常低效(内存方面等),因为每个应用程序都有单独的JNDI绑定。

我也尝试在EAR中打包这些WAR,但这似乎没有任何改变。

这有什么意义吗?我怎样才能确保公共EJB jar没有多次“部署”(每个依赖它的WAR一次)?

1 个答案:

答案 0 :(得分:1)

要解决您的问题,您需要拥有3个模块的一只耳朵--2个战争和1个ejb。不要在WAR中包含EJB,因为您将有重复项。依赖性应仅在类路径设置中产生,不包括war文件中的jar。

可以通过war插件配置

创建类路径条目
 <manifestEntries><Class-Path>project-ejb-${project.version}.jar</Class-Path>

或ear插件配置:

<skinnyWars>true</skinnyWars>

有关详细信息,请参阅skinnyWars说明。