es jar包冲突问题
es本身依赖了许多其他第三方包,在使用es-java api时,如果引用不当会造成jar包冲突无法使用。
1、默认情况下, 使用es-java api,主需要引入如下的maven信息即可:
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>2.3.2</version>
</dependency>
2、java.lang.NoSuchMethodError:com.google.common.util.concurrent.MoreExecutors.directExecutor()Ljava/util/concurrent/Executor
这种错误是由于guava版本冲突导致,在es-2.3.2版本中使用的是guava1.8版本,如果项目中其他jar引用的是其他版本guava,会造成冲突,解决方案是加上如下依赖:
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>18.0</version>
</dependency>
3、Exception in thread “main” java.lang.NoSuchFieldError: FAIL_ON_SYMBOL_HASH_OVERFLOW
这种错误是由于jackson版本冲突导致,在es-2.3.2版本中使用的是jackson2.6.2,如果项目中其他jar引用的其他版本jackson,会造成冲突,解决方案加上如下依赖:
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.6.2</version>
</dependency>
还没有评论,来说两句吧...