2012-05-02 14 views
7

estoy recibiendo esta excepción raro en esta línea:ClassNotFoundException HttpRequestInterceptor

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

Seguimiento de la pila:

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

... y el código alrededor de la línea 36 que causa este error es ...? – Makoto

+0

Hola @Makoto: la línea grande de fuentes en negrita;) – myro

+0

No veo una línea larga y negrita. Veo exactamente una línea de código que no incluye HttpRequestInterceptor. – jahroy

Respuesta

19

Obteniendo el mismo problema. Ambos debemos estar jugando con Solr 3.6

Tuve que descargar los archivos HttpClient del proyecto HttpComponents. Ellos no parecen estar incluido con Solr 3,6

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

3,6 tiene una nueva versión del cliente que utiliza las nuevas HttpComponents (4.0) las cosas, no las cosas viejas HttpClient (3.1). El antiguo 3.1 jar está allí, pero no el nuevo.

Una vez que copié las jarras, funcionó.

He copiado lo siguiente (puede que no todos sean necesarios).

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

funciona para mí, ahora.

+0

Impresionante. Descargué httpComponents y compilé con maven. Funciona genial. –

0

Parece que se echa en falta el archivo JAR HttpClient en la ruta de clases en tiempo de ejecución.

10

Si está utilizando Maven para incluir SolrJ, también querrá las siguientes frases en su 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

También se enfrentan a este problema. Para resolver esto, he hecho siguiente:

  1. verificaron las versiones disponibles de los componentes de HTTP en su "~ .m2 \ Repository \ org \ apache \ httpcomponents" directorio
  2. Sobre la base de que se suman siguientes entradas en su pom archivo .xml y reconstruya su proyecto ejecutando el comando mvn clean install y mvn eclipse:eclipse uno por uno. (Si se encuentra detrás del proxy, asegúrese de que ha proporcionado la configuración esencial en su settings.xml)

Esto debería resolver el problema, lo hizo por mí. :)

 <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> 
Cuestiones relacionadas