0

グアバ14.0.1に依存するエライバスを使用する戦争があります。私は Jboss でアプリをデプロイしていますが、そうすると、Jboss は guava r6 (非常に古い) である guava の溶接バージョンを使用しています。これにより、クラスのロードに関する恐ろしい問題が発生し、errai-bus が完全に機能しなくなります。

pom で最上位の依存関係として guava 14.0.1 を宣言しても、guava r6 が使用されます。Jboss が自分の war に間違った guava バージョンをロードしないようにするにはどうすればよいですか?

Jboss AS 6 のクラスローダーファイルでこれを行う方法に関する情報を調べようとしましたが、ドキュメントが見つからないようです。

4

1 に答える 1

1

jboss-classloading.xml以下をWEB-INFフォルダーに追加してみてください。

<classloading xmlns="urn:jboss:classloading:1.0"
              name="mywar.war"
              domain="mywar_domain" 
              parent-domain="Ignored"
              export-all="NON_EMPTY"
              import-all="true">
</classloading>

mywar_domainこの場合、独自のドメインを定義しない他のすべてのアプリケーションと共有されるに war のクラスローダーを配置します。また、他のアプリケーションによってエクスポートされた他のすべてのクラスを調べ、すべてのクラスimport-allを他のクラスに公開することを選択しますexport-all

このファイルをデプロイすると、Web アプリケーションのクラスローダーがトップレベルのクラスローダーとして機能するため、サーバーのライブラリ内の同じクラスと競合することはありません。

以下も参照してください。

とにかく、JBoss AS 6 は時代遅れで、未解決のバグがたくさんあります。新しいバージョン (Wildfly または JBoss EAP 6) を使用する可能性を確認する必要があります。

于 2014-11-27T12:35:14.893 に答える