栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

ES报错:org.elasticsearch.client.Request.<init>(Ljava/lang/String;Ljava/lang/String;)V

ES报错:org.elasticsearch.client.Request.<init>(Ljava/lang/String;Ljava/lang/String;)V

今天ES执行时,报这个错误:

org.elasticsearch.client.Request.(Ljava/lang/String;Ljava/lang/String;)V

Maven:
 

     
        
            org.elasticsearch.client
            elasticsearch-rest-high-level-client
            6.2.1
        

        
            org.elasticsearch
            elasticsearch
            6.2.1
        
        

对ES操作,报如下错误:

java.lang.NoSuchMethodError: org.elasticsearch.client.Request.(Ljava/lang/String;Ljava/lang/String;)V

问题定位及分析
通常出现java.lang.NoSuchMethodError 异常说明项目中出现了jar包冲突,项目运行时调用了版本A中的某个类的方法, 但实际上classLoader加载的是版本B的类文件,而版本B中并没有实际调用的方法签名,导致异常出现。

从爆出的异常可以知道是org.elasticsearch.client.Reques这个类出现了冲突 ,通过用idea全局查找该类发了了有如下两个类全名完全相同的类存在于elasticsearch-rest-client:6.4.3和elasticsearch-rest-high-level-client:6.2.1这两个不同的jar包内

问题解决
出现jar包冲突,通常的解决方案就是将版本不一致导致冲突的包排除,引入版本一致的依赖,具体到本次问题,将elasticsearch-rest-high-level-client的依赖包修为为:

  
        
            org.elasticsearch.client
            elasticsearch-rest-high-level-client
            6.2.1
            
                
                    org.elasticsearch.client
                    elasticsearch-rest-client
                
            
        
        
            org.elasticsearch.client
            elasticsearch-rest-client
            6.2.1
        

        
            org.elasticsearch
            elasticsearch
            6.2.1
        
        

刷新Maven,重新启动ES,执行后,正确。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号