2015-05-20 3 views
0

Я хочу интегрировать топологию Бури с SolrJ, но я получаю эту ошибкуSolrJ с Apache Буря java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET

thread "main" java.lang.NoSuchFieldError: DEF_CONTENT_CHARSET 
at org.apache.http.impl.client.DefaultHttpClient.setDefaultHttpParams(DefaultHttpClient.java:181) 

Он должен быть проблемой зависимости, но я проверил мой путь к классам и там это правильные версии http-client и http-core и не дублируются.

Для этого вопроса уже задан вопрос this, но нет другой информации, как только он его решил.

мой pom.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>group.id</groupId> 
<artifactId>twittertosolr</artifactId> 
<version>1.0-SNAPSHOT</version> 

<repositories> 
    <repository> 
     <id>Atilika Open Source repository</id> 
     <url>http://www.atilika.org/nexus/content/repositories/atilika</url> 
    </repository> 
</repositories> 

<dependencies> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-core</artifactId> 
     <version>2.4.3</version> 
    </dependency> 
    <dependency> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
     <version>2.4.3</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.storm</groupId> 
     <artifactId>storm-core</artifactId> 
     <version>0.9.4</version> 
     <scope>provided</scope> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>log4j-over-slf4j</artifactId> 
      </exclusion> 
     <exclusion> <!-- declare the exclusion here --> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>com.google.guava</groupId> 
     <artifactId>guava</artifactId> 
     <version>18.0</version> 
    </dependency> 
    <!-- STANFORD --> 
    <dependency> 
     <groupId>edu.stanford.nlp</groupId> 
     <artifactId>stanford-corenlp</artifactId> 
     <version>3.3.0</version> 
    </dependency> 
    <dependency> 
     <groupId>edu.stanford.nlp</groupId> 
     <artifactId>stanford-corenlp</artifactId> 
     <version>3.5.2</version> 
     <classifier>models</classifier> 
    </dependency> 

    <dependency> 
     <groupId>org.twitter4j</groupId> 
     <artifactId>twitter4j-stream</artifactId> 
     <version>4.0.2</version> 
    </dependency> 
    <dependency> 
     <groupId>org.atilika.kuromoji</groupId> 
     <artifactId>kuromoji</artifactId> 
     <version>0.7.7</version> 
     <type>jar</type> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.solr</groupId> 
     <artifactId>solr-solrj</artifactId> 
     <version>5.1.0</version> 

    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.17</version> 
     <exclusions> 
      <exclusion> 
       <groupId>org.slf4j</groupId> 
       <artifactId>log4j-over-slf4j</artifactId> 
      </exclusion> 
     <exclusion> <!-- declare the exclusion here --> 
      <groupId>commons-io</groupId> 
      <artifactId>commons-io</artifactId> 
     </exclusion> 
     </exclusions> 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-assembly-plugin</artifactId> 
      <version>2.5.3</version> 
      <configuration> 
       <archive> 
        <manifest> 
         <mainClass>com.msd.gic.twitter.storm.Topology</mainClass> 
        </manifest> 
       </archive> 
       <descriptorRefs> 
        <descriptorRef>jar-with-dependencies</descriptorRef> 
       </descriptorRefs> 
      </configuration> 
      <executions> 
       <execution> 
        <id>make-assembly</id> 
        <phase>package</phase> 
        <goals> 
         <goal>single</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.2</version> 
      <configuration> 
       <source>1.7</source> 
       <target>1.7</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-jar-plugin</artifactId> 
      <version>2.5</version> 
      <configuration> 
       <archive> 
        <manifest> 
         <addClasspath>true</addClasspath> 
         <mainClass>com.msd.gic.twitter.storm.Topology</mainClass> 
        </manifest> 
       </archive> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-dependency-plugin</artifactId> 
      <version>2.9</version> 
      <executions> 
       <execution> 
        <id>copy-dependencies</id> 
        <phase>package</phase> 
        <goals> 
         <goal>copy-dependencies</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>${project.build.directory}</outputDirectory> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

ответ

0

Упомянутый пост имеет комментарий о версиях. Я вижу, что вы используете solrj 5. Его последний. Есть много изменений в том, как вы индексируете данные в Solr 5. Пожалуйста, вставьте фрагмент кода, который вы используете.

+0

Я пробовал это разными способами, наконец, что помогло только для того, чтобы снова создать новый новый проект с тем же pom.xml и снова загрузить зависимости. Я не знаю почему, но теперь он работает правильно, и я могу сказать, что это правильная конфигурация. Это была какая-то магическая проблема - возможно, какой-то кеш, репозиторий maven, проблема IDE eclipse, ... определенно что-то с classpath. – Babu