【发布时间】:2014-08-10 09:23:15
【问题描述】:
我正在将我的应用程序从 JBoss 7.1 上的 Java 7 迁移到 Java 8 和 Wildfly (Jboss 8.1)。
当我尝试启动 Wildfly 时出现错误,服务器已启动但我的应用程序未加载。查看 Caused By 我可以看到一个更具描述性的问题:
原因:org.jboss.weld.exceptions.DeploymentException: WELD-001408: 类型 Set with 的依赖关系不满足 限定符 @Default 在注入点 [BackedAnnotatedParameter] [BackedAnnotatedConstructor] @Inject 的参数 1 com.google.common.util.concurrent.ServiceManager(Set) 在 com.google.common.util.concurrent.ServiceManager.(ServiceManager.java:0)
这个ServiceManager 类属于Google Guava。我已经尝试过 Guava 17、16 和 15,但问题仍然存在。
更新:感谢 ColinD 的回答,我更新了问题以提供更多详细信息。
在我的 pom.xml 我有:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>17.0</version>
</dependency>
该错误与 Guava 15 有关。我查看了部署的应用程序目录,发现我的 lib 目录包含两个 guava jar:guava-17.0.jar 和 guava-15.0-cdi1.0.jar。
我删除了这个奇怪的 guava-15.0-cdi1.0 jar 文件,我的服务器启动了,尽管我的应用程序没有加载。我认为这与 Wildfly 依赖项和 CDI 有关。
有人知道如何在 Wildfly 上解决这个冲突吗?
【问题讨论】: