Получение java.lang.NoClassDefFoundError при использовании solr-solrj-3.6.1.jar

Использование 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.


person NitZRobotKoder    schedule 07.09.2012    source источник


Ответы (3)


Добавьте этот пакет в свои зависимости maven:

<dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.2.1</version>
</dependency>
person sics    schedule 07.09.2012

Добавлены ниже зависимости, чтобы заставить это работать

<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>
person NitZRobotKoder    schedule 07.09.2012

Мой простой проект 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 может автоматически загружать их (например, я запустил Java-приложение Maven в NetBeans, а затем просто добавил зависимости). Дополнительно мне нужно было просто скачать библиотеку commons-logging 1.1.3 (http://commons.apache.org/proper/commons-logging/download_logging.cgi). Подробнее о библиотеках и зависимостях можно прочитать здесь: (http://wiki.apache.org/solr/Solrj< /а>).

person Darius Miliauskas    schedule 26.09.2013