Грешка в 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
  • commons-codec-1.9.jar / commons-codec-1.9-javadoc.jar / commons-codec-1.9-sources.jar
  • httpclient-4.2.jar
  • httpcore-4.0.1.jar

Виждал съм в други теми тук, че може да е версията на библиотеката httpcore, но импортирах най-новата.

Някакви идеи как мога да разреша това? Мисля да започна отначало, тъй като проектът ми изглежда е купчина импортирани неща, които не съм сигурен, че наистина ще използвам. Освен това не мога да отстранявам грешки в бинарните импортирания на AWS SDK (или не мога?).

наздраве


person Yuval Herziger    schedule 11.09.2014    source източник
comment
Добре, толкова малък напредък, прекарах толкова весело, докато импортирах всички тези буркани, че имах противоречия между две версии на HTTP ядрото на apache. Ще продължа и ще публикувам напредък.   -  person Yuval Herziger    schedule 11.09.2014
comment
Използвате Tomcat, нали? Ако случаят е такъв, намерете кой JAR съдържа класа, който не може да намери (можете да използвате ZIP програма, за да проверите съдържанието на JAR), след което опитайте да поставите JAR в различни включени папки. т.е. \Tomcat\Lib или \webapps\myapp\WEB-INF\lib и т.н. в зависимост от вашата версия на Tomcat може да има други папки, които да опитате.   -  person munyul    schedule 11.09.2014
comment
Благодаря ти munyul, проблемът е разрешен чрез премахване на остарялата версия на httpclient библиотеката, която прекъсна. След това просто добави липсващ пакет joda-time и проблемът беше решен.   -  person Yuval Herziger    schedule 11.09.2014


Отговори (1)


Проблемът е решен, постепенно добавих липсващите библиотеки към проекта и когато apache httpclient jar трябва да бъде версия 4.0 или по-нова и без предишна версия, която да противоречи.

Импортирах httpclient-4.2.jar и проработи.

Освен това току-що разреших изключението, последвано от импортиране на joda-time-2.4.jar и всичко е готово.

person Yuval Herziger    schedule 11.09.2014