9

私のプロジェクトでは、glassfish-embedded3.1.1とguavalibの両方を使用しています...問題は、glassfishにguavaの古い実装(つまり、google-collections)が付属していることです...

これにより、実行時にNoSuchMethodErrorが発生します。たとえば、後でguavaで導入されたLists.reverse()またはSets.newIdentityHashSet()を使用する場合です。

これを解決するための解決策が見つかりません...(唯一の方法は、glassfishjarのcom/ google classesディレクトリを手動でゴミ箱に移動することです...)

4

3 に答える 3

7

以下を指定することでこれを克服することができます。クラスローダーの章の「委任」セクションをお読みください。

<class-loader delegate="false" />

一般的なJavaEEアプリでのクラスの読み込みについては、このSO投稿を確認してください:JavaEEクラスの読み込み標準

于 2011-09-30T16:19:44.890 に答える
4

Glassfishは、自分のjarファイルにcom.googleクラスを含めるべきではありませんでした。それはエラーでした。

更新[@sly7_7]:Glassfishのjarにはグアバが含まれていないようですが、代わりにグアバアーティファクトに依存しています。これで問題が解決するはずです。これを指摘してくれた@JagWireに感謝します。

于 2011-10-01T01:42:44.783 に答える
0

次のGlassfishv4ビルドを使用して、エラーを解消することができました。

http://grepcode.com/snapshot/maven.java.net/content/groups/promoted/org.glassfish.main.extras/glassfish-embedded-all/4.0.1-b01

一見の価値があるかもしれません。

于 2014-02-20T21:23:46.303 に答える