[英]Guava conflict with Jboss 8 (Wildfly) and Java 8
我正在將應用程序從JBoss 7.1上的Java 7遷移到Java 8和Wildfly(Jboss 8.1)。
當我嘗試啟動Wildfly時出現錯誤,服務器已啟動,但未加載我的應用程序。 查看“原因”,可以看到一個更具描述性的問題:
由以下原因引起:org.jboss.weld.exceptions.DeploymentException:WELD-001408:在注入點[BackedAnnotatedParameter] @BackedAnnotatedConstructor] @Inject com.google.common.util.concurrent中使用限定符@Default設置的類型Set的依賴關系。位於com.google.common.util.concurrent.ServiceManager的ServiceManager(Set)。(ServiceManager.java:0)
此ServiceManager
類屬於Google 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上的這種沖突嗎?
自Guava 16.0起, ServiceManager
上沒有@Inject
或@Singleton
。 一種或另一種方式,看起來您的類路徑上具有Guava <= 15.0的版本。
是的,聽起來您正在包裝番石榴15左右。 它絕對適用於番石榴16。我知道這是因為我有同樣的問題。 我可以用耳朵包裝更高版本的番石榴來解決這個問題。 可能是您在聲明Wildfly的guava模塊的依賴關系,而不是隨您的部署一起打包guava lib?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.