前言因为项目需要,最近在学习elasticsearch,在使用elasticsearchJava客户端时,出现了写问题,主要就是报各种的NoClassDefFoundError如:java.lang.NoClassDefFoundError:org/elasticsearch/xcontent/ToXContentObject,出现这种NoClassDefFoundError的问题基本上就是maven依赖错误或者版本不对,于是顺着这个思路排查,摸到了问题所在。案例描述在尝试使用elasticsearch-rest-high-level-client客户端7.17.4版本。项目的依赖:elast
在学习es的RestHighLevelClient时,在项目中的common模块中引入es依赖dependency>groupId>org.elasticsearch.clientgroupId>artifactId>elasticsearch-rest-high-level-clientartifactId>version>7.0.0version>exclusions>exclusion>groupId>org.elasticsearchgroupId>artifactId>elasticsearchartifactId>exclusion>exclusions>dependency>de
FAIL_ON_SYMBOL_HASH_OVERFLOW这个类型不存在。问题的原因是jar包版本冲突。这个是在jackson的since2.4版本的包里面才有。2.3之前的版本是没有得。这个存在2.4及以上才出现的,所以,实际运行的项目中jackson的jar冲突了。我这儿的问题是flume的lib下有jackson的2.3的版本,但是,我代码引用的版本是2.8的版本,启动之后,jar包冲突了,所以,就报类型不存在,classnotdefexception之类的。遇到类找不到,但是,项目里面确实有这个东西的时候,就的考虑是不是项目的包和其他地方有冲突,导致的问题。 这儿呢,主要是提个思路,遇到
发生缘由学习ES中JavaHighLevelRestClient客户端API运行环境elasticsearch版本:7.12.1jdk版本:jdk-8电脑系统:win10Idea版本:2021.2报错信息org.elasticsearch.common.compress.NotXContentException:Compressordetectioncanonlybecalledonsomexcontentbytesorcompressedxcontentbytes atorg.elasticsearch.common.compress.CompressorFactory.compressor