我正在部署一个带有实用程序 jar的EAR ,比如位于 EAR 的lib文件夹中的A.jar 。我 EAR 的application.xml是:
<application ...>
<library-directory>lib</library-directory>
<module><ejb>cashflow-ejb.jar</ejb></module>
<module>
<web>
<web-uri>cashflow-war.war</web-uri>
<context-root>cashflow</context-root>
</web>
</module>
</application>
但是,我的 WAR 看不到EAR的lib/A.jar中的类,并且部署失败并出现ClassNotFound异常。我浏览了这两个类似的帖子:a和b,但那里提供的解决方案似乎都不起作用。基本上我认为我需要WAR的 MANIFEST 文件有一个Class-Path:指向EAR库的条目。有人可以为此提供ANT目标吗?我试过“ ../lib ”,如:
<war
needxmlfile="false"
basedir="${webroot.dir}"
warfile="${build.dir}/${project.distname}.war">
<exclude name="WEB-INF/src/**"/>
<manifest>
<attribute name="Class-Path" value="../lib"/>
</manifest>
</war>
但它似乎不起作用,对于Class-Path值,“ lib/A.jar ”、“ ../lib/ A.jar ”或“ /lib ”也不起作用。在 JBoss AS 7.1.1 中部署的唯一解决方案是在EAR的/lib位置和WAR的WEB-INF/lib中复制A.jar ,但是我的EAR中有两个相同JAR的副本.