0

EAR のlibフォルダーにあるA.jarなどのユーティリティ jar を使用してEARをデプロイしています。私の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例外で失敗します。これら 2 つの同様の投稿abを調べましたが、そこで提供された解決策はどれも機能していないようです。基本的に、 WARの MANIFEST ファイルにClass-Path: EAR のlibを指すエントリが必要だと思います。誰かがそのための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 にデプロイする唯一の解決策は、A.jarをEAR/libロケーションとWARWEB-INF/libの両方にコピーすることですが、EARに同じJARの 2 つのコピーがあります。 .

4

0 に答える 0