我一直在與這個錯誤作戰3個小時。 我檢查了構建路徑和CLASSPATH和他們是一樣的,這是一個相當大的web應用,在Tomcat & Geronimo上運行,它爲每個組件&構建文件,然後一個主一旦結合它們放在一起,但我已經超過了螞蟻構建文件&將它們與其他依賴第三方庫的工作組件進行了比較,我沒有看到區別。神祕的NoSuchMethodError它不能是類路徑...可以嗎?
<fileset dir="${home.dir}/component/lib" includes="*.jar"/>
這一切似乎是爲了。 如果我從JUnit測試中調用這個方法,從eclipse中運行,通過沒有問題,如果我運行服務器,我得到這個異常。
此外,我還有其他兩個庫,該組件使用&我剛剛添加它作爲一個用戶庫在eclipse &在build.xml中引用的組件lib,它沒有問題。我試過在訴諸試驗和錯誤的時候,在邏輯似乎失敗的時候移動罐子&沒有運氣。
爲了使事情更奇怪,我現在還記得,我曾就此問題與一些代碼,我寫我自己,甚至沒有在庫中。 java.lang.NoSuchMethodError,因爲eclipse偶爾會做隨機的事情,所以我只是改變了方法的名稱,並且乾淨地運行了它的&。
我試過幾次清洗和重建整個網絡應用程序,沒有任何變化。
我想詳細瞭解如何獲得更接近問題,所以我可以嘗試尋找錯誤的一些建議,如何做一個調試類路徑的問題是有其他地方的類路徑除了構建文件defened?
有關如何針對問題的任何建議,將不勝感激。
Exception: java.lang.NoSuchMethodError [java] Message: com.google.common.collect.ImmutableMultimap.of()Lcom/google/common/collect/ImmutableMultimap; [java] ---- stack trace --------------------------------------------------------------- [java] java.lang.NoSuchMethodError: com.google.common.collect.ImmutableMultimap.of()Lcom/google/common/collect/ImmutableMultimap; [java] com.google.gdata.util.common.net.UriParameterMap.<clinit>(UriParameterMap.java:78) [java] com.google.gdata.client.Service.computeQueryMap(Service.java:2190) [java] com.google.gdata.client.Service.access$000(Service.java:94) [java] com.google.gdata.client.Service$ClientStreamProperties.<init>(Service.java:1839) [java] com.google.gdata.client.Service$ClientOutputProperties.<init>(Service.java:1986) [java] com.google.gdata.client.Service.writeRequestData(Service.java:2029) [java] com.google.gdata.client.Service.insert(Service.java:1408) [java] com.google.gdata.client.GoogleService.insert(GoogleService.java:599) [java] com.google.gdata.client.appsforyourdomain.AppsForYourDomainService.insert(AppsForYourDomainService.java:100) [java] za.co.venturenet.api.googleapps.GoogleAppsServices.createUser(GoogleAppsServices.java:437) [java] za.co.venturenet.api.googleapps.GoogleAppsServices.createUser(GoogleAppsServices.java:336) [java] za.co.venturenet.api.googleapps.GoogleAppsFacade.createNewVenturenetUser(GoogleAppsFacade.java:158)
似乎沒有一個不同的版本,但有太多的圖書館一眼就看不清楚。你知道我可以用來查看這個工具嗎?我如何獲得連接到服務器的系統類加載器的類型列表,與系統中存在的谷歌API類型的舊集成,我想對於像com.google.common.collect.ImmutableMultimap這樣的類,它很可能是舊版本的類存在於另一個庫中的某個地方,但是如何找到它,就像在乾草堆中尋找針一樣 – justify 2011-06-14 07:49:28
嘗試在eclipse中搜索,只找到它。 – justify 2011-06-14 07:55:52
好吧,我發現它,問題是,該系統的另一部分使用該庫,其中com.google.common的另一個版本捆綁到它 – justify 2011-06-14 08:42:54