簡體   English   中英

澤西島啟動問題:java.lang.NoSuchMethodError:com.google.common.collect.Sets.newIdentityHashSet()

[英]Jersey Startup Issue : java.lang.NoSuchMethodError: com.google.common.collect.Sets.newIdentityHashSet()

我正在使用Jersey 2.5.1。 我的.war文件打包在.ear文件中。 在.war模塊的WEB-INF \\ lib文件夾中,我有guava-14.0.1.jar。 jersey-common-2.5.1.jar依賴於番石榴。

外面,在ear / lib文件夾中,我有另一個guava jar-> guava-17.0,這是我的項目所需的。

兩個罐子都有方法newIdentityHashSet(),但我仍然遇到以下錯誤:

java.lang.NoSuchMethodError:com.google.common.collect.Sets.newIdentityHashSet()Ljava / util / Set; 在org.glassfish.jersey.model.internal.CommonConfig。(CommonConfig.java:220)在org.glassfish.jersey.server.ResourceConfig $ State。(ResourceConfig.java:110)在org.glassfish.jersey.server.ResourceConfig (org.glassfish.jersey.servlet.WebComponent.createResourceConfig(WebComponent.java:444)(org.glassfish.jersey.servlet.WebComponent。(WebComponent.java:302)處的(ResourceConfig.java:351)已截斷。 請參閱日志文件以獲取完整的stacktrace

我嘗試刪除其中一個番石榴罐,但錯誤是相同的。 我試圖在兩個地方都保持相同的版本。 但是沒有用。

我正在Weblogic 12C中進行部署。

任何幫助都會很大。

將jar文件復制到相同的ear / war文件中不是一個好主意。 因為會出現這種類型的錯誤。 最佳做法是按庫僅提供一個版本。

話雖如此,您可以檢查在哪里嘗試加載沒有該方法的類:

檢查從哪個jar文件加載特定類的一種方法是將參數-verbose:class設置為JRE。

這將為您提供有關此類加載問題的提示。

WLS還捆綁了Classloader分析工具(CAT),可幫助您識別重復的jar文件(沖突等)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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