在学习es的 RestHighLevelClient 时,
在项目中的common模块中引入es依赖
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.0.0</version>
<exclusions>
<exclusion>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.0.0</version>
<exclusions>
<exclusion>
<artifactId>jackson-core</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
写好RestHighLevelClient的config配置类后,启动验证有没有将RestHighLevelClient注入进项目时,报错如标题所示,上网搜索,说是可能依赖中有低版本的elasticsearch存在。
检查外部依赖果然是。elasticsearch-rest-high-level-client依赖自带了一个低版本的elasticsearch依赖,即使我排除了,但是又在后面引入了7.0.0版本的,但是两个版本的依赖还是同事存在在项目中,有这个低版本的依赖,启动就会报错。
于是搜索依赖这存在两个版本的同一个依赖
项目引入中es7.4,并排出其他jar包引入的低版本es的jar包,
得知,在common中引入elasticsearch-rest-high-level-client,同时排除elasticsearch,
<!--导入了elasticsearch -->
<dependency>
<groupId>org.elasticsearch.client</groupId>
<artifactId>elasticsearch-rest-high-level-client</artifactId>
<version>7.0.0</version>
<exclusions>
<exclusion>
<artifactId>elasticsearch</artifactId>
<groupId>org.elasticsearch</groupId>
</exclusion>
</exclusions>
</dependency>
在该模块的parent模块中引入需要的版本,该模块依赖parent文章来源:https://www.toymoban.com/news/detail-764992.html
<dependency>
<groupId>org.elasticsearch</groupId>
<artifactId>elasticsearch</artifactId>
<version>7.0.0</version>
<exclusions>
<exclusion>
<artifactId>jackson-core</artifactId>
<groupId>com.fasterxml.jackson.core</groupId>
</exclusion>
</exclusions>
</dependency>
再启动就好了。文章来源地址https://www.toymoban.com/news/detail-764992.html
到了这里,关于NoClassDefFoundError: org/elasticsearch/common/xcontent/DeprecationHandler问题的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!