6

我尝试在部署的项目中使用Jersey 2.1CDIJava 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 有一些可疑的行为。我们认为我们有两种解决方法:一种您可以自己做另一种在我们发布 Guava 15.0 时自动运行。您可以在此处阅读有关该问题的更多信息

于 2013-08-12T14:11:15.137 回答
2

The problem here is that Guava classes are annotated, and CDI tries to inject dependencies into them.

The glassfish/modules directory contains a guava.jar. so simply setting the guava dependency to provided (or test) in maven solves the problem.

于 2013-08-12T14:11:27.477 回答