7

我在这条线上遇到了这个奇怪的异常:

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

4 回答 4

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 jar 在那里,但不是新的。

一旦我把罐子复制过来,它就起作用了。

我复制了以下内容(并非全部都需要)。

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

现在为我工作。

于 2012-05-02T23:42:49.330 回答
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>
于 2012-09-17T19:16:39.740 回答
0

看起来您在运行时类路径中缺少 HttpClient Jar 文件。

于 2012-05-02T23:12:03.970 回答
0

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

  1. 检查“~.m2\repository\org\apache\httpcomponents”目录中http组件的可用版本
  2. 基于此在您的 pom.xml 文件中添加以下条目,并通过运行mvn clean installmvn 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>
于 2013-10-28T10:07:00.423 回答