我有一个包含许多EJB的jar,我需要访问来自多个WAR的那些。我正在尝试找出将这些打包并部署到单个应用服务器的最佳方法。
目前,我单独部署每个WAR,每个WAR都依赖于公共EJB jar,但这似乎非常低效(内存方面等),因为每个应用程序都有单独的JNDI绑定。
我也尝试在EAR中打包这些WAR,但这似乎没有任何改变。
这有什么意义吗?我怎样才能确保公共EJB jar没有多次“部署”(每个依赖它的WAR一次)?
答案 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说明。