【问题标题】:Getting java.lang.NoClassDefFoundError while using solr-solrj-3.6.1.jar使用 solr-solrj-3.6.1.jar 时出现 java.lang.NoClassDefFoundError
【发布时间】:2012-09-01 00:06:09
【问题描述】:

使用 Solrj 连接到 solr 索引。使用了 jar solr-solrj-3.6.1.jar 我通过添加下面的 maven 依赖项

<dependency>
   <groupId>org.apache.solr</groupId>
   <artifactId>solr-solrj</artifactId>
   <version>3.6.1</version>
</dependency>

我看到 CommonsHttpSolrServer 已被弃用,因此使用 HttpSolrServer 。在运行时我收到以下错误, 线程“main”中的异常 java.lang.NoClassDefFoundError: org/apache/http/client/HttpClient

仅仅添加 solr-solrj-3.6.1.jar 还不够?我应该添加更多依赖项吗?我还尝试添加 httpclient 4.1,它开始要求 org/apache/http/HttpRequestInterceptor。

【问题讨论】:

    标签: solrj


    【解决方案1】:

    将此包添加到您的 maven 依赖项中:

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

    【讨论】:

      【解决方案2】:

      添加了以下依赖项以使其正常工作

      <dependency>
          <groupId>org.apache.httpcomponents</groupId>
          <artifactId>httpclient</artifactId>
          <version>4.2.1</version>
      </dependency>
      <dependency>
          <groupId>org.apache.httpcomponents</groupId>
          <artifactId>httpcore</artifactId>
          <version>4.2.1</version>
      </dependency>
      <dependency>
          <groupId>org.apache.httpcomponents</groupId>
          <artifactId>httpmime</artifactId>
          <version>4.2.1</version>
      </dependency>
      <dependency>
          <groupId>org.slf4j</groupId>
          <artifactId>slf4j-api</artifactId>
          <version>1.5.8</version>
      </dependency>
      <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
           <version>1.5.8</version>
      </dependency>
      

      【讨论】:

        【解决方案3】:

        我的 solrj 简单项目使用以下依赖项:

              <dependencies>
                <dependency>
                  <groupId>junit</groupId>
                  <artifactId>junit</artifactId>
                  <version>3.8.1</version>
                  <scope>test</scope>
                </dependency>
                <dependency>
                  <groupId>org.apache.solr</groupId>
                  <artifactId>solr-solrj</artifactId>
                  <version>4.4.0</version>
                </dependency>
                <dependency>
                  <groupId>org.apache.solr</groupId>
                  <artifactId>solr-core</artifactId>
                  <version>4.4.0</version>
                </dependency>
                <dependency>
                  <groupId>org.apache.commons</groupId>
                  <artifactId>commons-logging</artifactId>
                  <version>1.1.3</version>
                </dependency>
              </dependencies>
        

        在这之间,Maven 可以自动下载它们(例如我在 NetBeans 中启动了 Maven 的 Java Application,然后添加了依赖项)。此外,我只需要下载 commons-logging 1.1.3 (http://commons.apache.org/proper/commons-logging/download_logging.cgi) 库。您可以在此处阅读有关库和依赖项的更多信息:(http://wiki.apache.org/solr/Solrj)。

        【讨论】:

          猜你喜欢
          • 2019-08-10
          • 1970-01-01
          • 2018-04-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-13
          • 2014-10-05
          相关资源
          最近更新 更多