0

我正在部署一个带有实用程序 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 看不到EARlib/A.jar中的类,并且部署失败并出现ClassNotFound异常。我浏览了这两个类似的帖子:ab,但那里提供的解决方案似乎都不起作用。基本上我认为我需要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位置和WARWEB-INF/lib中复制A.jar ,但是我的EAR中有两个相同JAR的副本.

4

0 回答 0