记一次netty的Hadoop和elasticsearch冲突jar包

在一个项目中同时使用hbase和elasticsearch出现netty的jar包冲突的问题

  • 事件:

在同一maven项目中使用hbase的同时又用了es

程序运行后出错

1 java.lang.NoSuchMethodError: io.netty.util.AttributeKey.newInstance(Ljava/lang/String;)Lio/netty/util/AttributeKey;

 上网查了一些原因,说是netty的版本不同的原因,自己在编译后的目录也看到了不同,分别用了4.0.23和4.1.13两个版本

但不知怎么修改

 

直到遇见一位大神给出了解决办法

大神地址

作者:hayaqi0504 

  • 原因:

pom文件里不同组建各自依赖的netty的版本不同,

例如:我的就是hbase依赖的netty版本和elasticsearch的不同

 

  • 解决办法:

1.在idea的terminal查看pom所在目录

mvn dependency:tree

找到不同的jar版本,我的es用的4.1.13,而

2.在pom.xml中强制引用netty的依赖,直接使用es所用的版本,因为es用的版本高于hbase所依赖的

<dependency>
            <groupId>io.netty</groupId>
            <artifactId>netty-all</artifactId>
            <version>4.1.13.Final</version>
        </dependency>

注:mvn dependency:tree -Dverbose -Dincludes=asm:asm 类似的命令可以找到重复的jar包引用

 

posted @ 2018-08-29 20:09  qinglanmei  阅读(2317)  评论(0编辑  收藏  举报