2014-09-11 64 views
3

我在這裏看到了這種類型的錯誤,用於各類拋出的異常,儘管我還沒有找到適合我的正確解決方案。AWS Java SDK錯誤 - java.lang.NoSuchMethodError

我想讓AWS Java SDK在本地工作,這樣我就可以編寫一個測試應用程序,從Kinesis流中讀取數據。 問題是,當我運行init()靜態方法我遇到以下錯誤:

Exception in thread "main" java.lang.NoSuchMethodError: 
org.apache.http.impl.conn.DefaultClientConnectionOperator.<init> 
(Lorg/apache/http/conn/scheme/SchemeRegistry;Lorg/apache/http/conn/DnsResolver;)V 

現在,這是不是我已經拋出的第一個錯誤。在此之前,我已經拋出了四五個例外,解決方案只是將一些jar導入到項目中。例如:

  • Apache的httpcomponents-httpclient.jar
  • com.fasterxml.jackson.databind.jar
  • 公地編解碼器-1.9.jar /公地編解碼器-1.9-javadoc.jar/commons-編解碼器1.9 sources.jar
  • 的HttpClient-4.2.jar
  • 的HttpCore-4.0.1.jar

我在其他線程看到在這裏,它可能是httpcore版本圖書館,但我輸入了最新的一個。

任何想法如何解決這個問題?我正在考慮重新開始,因爲我的項目似乎是一大堆進口產品,我不確定我會真正使用它。此外,我無法調試AWS SDK的二進制導入(或者我不能?)。

乾杯。

+0

好吧,這麼小的進步,我有這麼快樂的時間導入所有那些我有兩個版本的Apache HTTP核心之間矛盾的jar。我會繼續並且會發表進展。 – YuvalHerziger 2014-09-11 06:52:54

+1

你正在使用Tomcat嗎?如果是這種情況,請查找哪個JAR包含無法找到的類(可以使用ZIP程序檢查JAR的內容),然後嘗試將JAR放入不同的包含文件夾中。即。 \ Tomcat \ Lib或\ webapps \ myapp \ WEB-INF \ lib等,這取決於您的Tomcat版本,可能有其他文件夾要「嘗試」。 – munyul 2014-09-11 07:00:35

+0

謝謝munyul,通過刪除已中斷的httpclient庫的過時版本來解決問題。然後只是添加了一個缺少的喬達時間包,問題就解決了。 – YuvalHerziger 2014-09-11 07:04:42

回答

2

問題解決了,我逐漸將缺少的庫添加到項目中,並且當Apache httpclient jar應該是版本4.0或更高版本,並且沒有任何以前的版本相沖突。

我輸入httpclient-4.2.jar,它工作。

除此之外,我剛剛解決了導入joda-time-2.4.jar之後的例外情況,它已全部正常運行。

+0

感謝它的工作 – 2015-01-30 09:58:18