簡體   English   中英

番石榴與Jboss 8(Wildfly)和Java 8發生沖突

[英]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.jarguava-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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM