ClassNotFoundException HttpRequestInterceptor

时间:2012-05-02 22:53:21

标签: java

我在这一行上得到了这个奇怪的例外:

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

4 个答案:

答案 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)

我也面临这个问题。为了解决这个问题,我做了以下几点:

  1. 检查“〜.m2 \ repository \ org \ apache \ httpcomponents”目录中http组件的可用版本
  2. 在此基础上添加pom.xml文件中的以下条目,并通过逐个运行mvn clean installmvn eclipse:eclipse命令来重建项目。 (如果您在代理服务器后面,请确保在settings.xml文件中提供了必要的配置)
  3. 这应该解决问题,它对我有用。 :)

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