我在这一行上得到了这个奇怪的例外:
HttpSolrServer server = new HttpSolrServer("http://localhost:8080/solr/");
堆栈追踪:
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 :(得分:19)
遇到同样的问题。我们俩都必须玩Solr 3.6
我必须从HttpComponents项目下载HttpClient jar。它们似乎没有包含在Solr 3.6中
http://hc.apache.org/downloads.cgi
3.6有一个新版本的客户端使用新的HttpComponents(4.0)的东西,而不是旧的HttpClient(3.1)的东西。旧的3.1罐子在那里,但不是新罐子。
一旦我复制了罐子,就可以了。
我复制了以下内容(可能不需要全部内容)。
httpclient-4.1.3.jar
httpclient-cache-4.1.3.jar
httpcore-4.1.4.jar
httpmime-4.1.3.jar
现在适合我。
答案 1 :(得分:10)
如果您使用Maven包含SOLRJ,您还需要在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>
答案 2 :(得分:0)
看起来您缺少运行时类路径中的HttpClient Jar文件。
答案 3 :(得分:0)
我也面临这个问题。为了解决这个问题,我做了以下几点:
mvn clean install
和mvn eclipse:eclipse
命令来重建项目。
(如果您在代理服务器后面,请确保在settings.xml文件中提供了必要的配置)这应该解决问题,它对我有用。 :)
<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>