6

デプロイされているプロジェクトでJersey 2.1andを使用しようとしていますCDIJava EE 7Glassfish 4.0.

Jersey モジュールはGuava ライブラリに依存しています。ただし、CDI で Guava ライブラリ (14.0.1) を使用すると、次の例外がスローされます。

CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [Set<Service>] with qualifiers [@Default] at injection point [[BackedAnnotatedParameter] Parameter 1 of [BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent.ServiceManager(Set<Service>)].

どうすればこの問題を克服できますか?

4

2 に答える 2

3

CDI には疑わしい動作がいくつかあります。2 つの回避策があると考えています。1 つは自分で実行できる方法で、もう 1 つは Guava 15.0 のリリース時に自動的に機能するものです。問題の詳細については、こちらをご覧ください。

于 2013-08-12T14:11:15.137 に答える
2

ここでの問題は、Guava クラスに注釈が付けられており、CDI がそれらに依存関係を注入しようとすることです。

glassfish/modules ディレクトリには guava.jar が含まれています。そのため、mavenでguava依存関係を提供(またはテスト)に設定するだけで問題が解決します。

于 2013-08-12T14:11:27.477 に答える