記一次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包引用

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM