0

私はアプリケーションを構築するためにMavenを使用しています。

多くの一般的なjarを含むWARファイルをアプリケーションサーバーの共有ライブラリとしてデプロイしました。

パッケージタイプEJBのアーティファクト(たとえばA-EJB)があります。ejbjarファイルを作成しました。

パッケージタイプEARの別のアーティファクト(たとえばA-EAR)があります。

A-EARのpomファイルにA-EJB依存関係を追加しました。EARファイルを作成でき、共有ライブラリ参照を追加するために、EARのweblogic-application.xmlにライブラリ参照を追加しました。

最終的なEARファイルには、A-EJB.jarファイル、A-EARアーティファクトの他の依存関係jarファイルが表示されました。

EAR構造:

-------------- APP-INF \ lib \ some jars
-------------- META-INF \ application.xml、MANIFEST.MF 、weblogic-application.xml
-------------- A-ejb.jar

A-EJB.jarのクラスファイルには、共有ライブラリ内の共通jarの参照が必要です。

理想的には、展開が正常に行われることを期待していますが、これは行われていません。EARファイルでライブラリ参照を共有していますが、デプロイメント中にEJBモジュールを準備しているときに、classNotFoundExceptionが原因でデプロイメントが失敗します。

A-EJB.jarのクラスファイルは、参照に必要なjarファイルを検索しますが、それらは共有ライブラリで使用可能であり、EARファイルに参照がある場合でも共有ライブラリは使用されません。

例外:

weblogic.application.ModuleException:例外準備モジュール:EJBModule [EJB:011023]デプロイメント記述子の読み取り中にエラーが発生しました。エラーは次のとおりです。.............................................。 ............。

原因:java.lang.ClassNotFoundException:........................................。 ...................。

つまり、これは、EARに共有ライブラリ参照があったとしても、EAR内に存在するejb.jarには共有ライブラリへの参照がなかったことを意味します。これは本当ですか ?

誰かがこの例外とシナリオに直面したことがありますか。この問題の解決について教えてください。

4

1 に答える 1

0

この設定でearプラグインを使用することをお勧めします..役立つかもしれません..

<plugin>
    <artifactId>maven-ear-plugin</artifactId>
    <configuration>
        <modules>
            <ejbModule>
                <groupId>ur ejb</groupId>
                <artifactId>ur ejb Id</artifactId>
            </ejbModule>
            <jarModule>
                <groupId>......</groupId>
                <artifactId>......</artifactId>
            </jarModule>
            ....
            ....
    Other jar modules to be included other than the one included in dependency tag
            ....
            ....
        </modules>
        <archive>
            <manifest>
                <addClasspath>false</addClasspath>
            </manifest>
        </archive>
        <displayName>...name...</displayName>
        <description>........desc.......</description>
    </configuration>
</plugin>
于 2012-06-21T12:30:15.627 に答える