2012-05-02 13 views
7

otrzymuję ten dziwny wyjątek na tej linii:ClassNotFoundException HttpRequestInterceptor

HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/"); 

Ślad stosu:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpRequestInterceptor 
    at com.polgar.dipl.index.SolrIndex.init(SolrIndex.java:36) 
    at com.polgar.dipl.index.SolrIndex.getInstance(SolrIndex.java:30) 
    at com.polgar.dipl.main.ArticleIndexer.main(ArticleIndexer.java:44) 
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpRequestInterceptor 
    at java.net.URLClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) 
    at java.lang.ClassLoader.loadClass(Unknown Source) 
    ... 3 more 
+0

... a kod wokół linii 36 powodujący ten błąd to ...? – Makoto

+0

Witaj @Makoto: duża pogrubiona linia czcionek;) – myro

+0

Nie widzę dużej, pogrubionej linii. Widzę dokładnie jedną linię kodu, która nie zawiera HttpRequestInterceptor. – jahroy

Odpowiedz

19

Uzyskanie tego samego problemu. Obaj musimy grać z Solr 3.6

Musiałem pobrać słoiki HttpClient z projektu HttpComponents. Oni nie wydają się być dołączona Solr 3.6

http://hc.apache.org/downloads.cgi

3,6 ma nową wersję klienta, który wykorzystuje nowe HttpComponents (4.0) rzeczy, a nie stary HttpClient (3.1) rzeczy. Stary słoik 3.1 jest tam, ale nie nowy.

Po skopiowaniu słoików zadziałało.

Skopiowałem następujące elementy (nie wszystkie mogą być potrzebne).

httpclient-4.1.3.jar 
httpclient-cache-4.1.3.jar 
httpcore-4.1.4.jar 
httpmime-4.1.3.jar 

dla mnie teraz działa.

+0

Awesome. Pobrałem httpComponents i skompilowałem z mavenem. Działa świetnie. –

0

Wygląda brakuje pliku JAR httpclient w ścieżce klas wykonawczego.

10

Jeśli używasz Maven zawierać SOLRJ, to chcemy także następujące frazy w swojej POM:

<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpclient</artifactId> 
    <version>4.2.1</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.httpcomponents</groupId> 
    <artifactId>httpmime</artifactId> 
    <version>4.2.1</version> 
</dependency> 
0

Byłem też w obliczu tego problemu. Aby rozwiązać ten problem, zrobiłem następujący:

  1. sprawdzone wersje dostępnych komponentów http w „~ .m2 \ repozytorium \ org \ apache \ httpcomponents” katalog
  2. Na tej podstawie dodać następujące wpisy w pom .xml i odbuduj swój projekt, uruchamiając kolejno polecenia mvn clean install i mvn eclipse:eclipse. (Jeśli jesteś za serwerem proxy, upewnij się, że warunkiem zasadniczą konfigurację w pliku settings.xml)

To powinno rozwiązać problem, to nie dla mnie. :)

 <dependency> 
       <groupId>org.apache.httpcomponents</groupId> 
       <artifactId>httpclient</artifactId> 
       <version>4.2.3</version> 
     </dependency> 
     <dependency> 
       <groupId>org.apache.httpcomponents</groupId> 
       <artifactId>httpmime</artifactId> 
       <version>4.2.3</version> 
     </dependency> 
Powiązane problemy