4

次の構造の EAR があります。

ear.ear    
  mywar.war
    lib
      jar1.jar
      jar2.jar
      jar3.jar

複数の WAR が deployments ディレクトリにあり、それらに jar1.jar が必要です。依存関係として ear.ear からの jar2.jar および jar3.jar。

これは可能ですか?

jboss-deployment-structure.xml に対して次のことを試しましたが、うまくいきませんでした。

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <module name="deployment.ear.ear.jar1.jar"/>
            <module name="deployment.ear.ear.jar2.jar"/>
            <module name="deployment.ear.ear.jar3.jar"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>

<?xml version="1.0" encoding="UTF-8"?>
    <jboss-deployment-structure>
        <deployment>
            <dependencies>
                <module name="deployment.ear.ear.lib.jar1.jar"/>
                <module name="deployment.ear.ear.lib.jar2.jar"/>
                <module name="deployment.ear.ear.lib.jar3.jar"/>
            </dependencies>
        </deployment>
    </jboss-deployment-structure>

ejb 以外の JAR 依存関係を別の EAR に含めることはできますか?

4

2 に答える 2

2

ear 内の Jar ファイルは、単一のモジュールとしてデプロイされます。jboss-deployment-structure.xmlear 自体への依存関係を指定することで、これらへの依存関係を示すことができます。また、任意の ejb を個別に含める必要があり、export="TRUE".

例えば:

<?xml version="1.0" encoding="UTF-8"? xmlns="urn:jboss:deployment-structure:1.2">
<jboss-deployment-structure>
    <deployment>
        <dependencies>
            <!-- our module depends on the libs within myear.ear -->
            <module name="deployment.myear.ear" export="TRUE"/>
            <!-- and these ejbs -->
            <module name="deployment.myear.ear.ejb1.jar" export="TRUE"/>
            <module name="deployment.myear.ear.ejb2.jar" export="TRUE"/>
            <module name="deployment.myear.ear.ejb3.jar" export="TRUE"/>
        </dependencies>
    </deployment>
</jboss-deployment-structure>
于 2014-10-20T04:10:53.940 に答える
2

依存関係を/libear のフォルダーに配置できるはずであり、戦争はそれらを見るはずです。

JBoss AS7 ドキュメントから:

Ear デプロイメントは、マルチモジュール デプロイメントです。これは、明示的な依存関係が定義されていない限り、ear 内のすべてのクラスが必ずしも ear 内の他のすべてのクラスにアクセスできるわけではないことを意味します。デフォルトでは、EAR/lib ディレクトリは単一のモジュールであり、すべての WAR または EJB jar デプロイメントも個別のモジュールです。サブデプロイメント (wars および ejb-jars) は常に親モジュールに依存しているため、EAR/lib 内のクラスにアクセスできますが、相互に自動的に依存関係があるとは限りません。

JBoss AS 7 でのクラス ローディングの詳細については、https ://docs.jboss.org/author/display/AS71/Class+Loading+in+AS7 を参照してください。

于 2013-08-15T14:42:18.860 に答える