Springboot es包版本异常解决方案
在项目pom.xml中加入依赖
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-high-level-client</artifactId> <version>7.6.1</version> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>7.6.1</version> </dependency>
发现项目总会拉下 6.4.3 的版本,并且项目中也会引用这个版本然后启动项目,还会发现找不到方法的异常

Exception in thread "main" java.lang.NoSuchMethodError: org.elasticsearch.client.Request.addParameters(Ljava/util/Map;)V
at org.elasticsearch.client.RequestConverters.index(RequestConverters.java:341)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1510)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1484)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1454)
at org.elasticsearch.client.RestHighLevelClient.index(RestHighLevelClient.java:871)
at com.majb.es.ESMain.main(ESMain.java:23)
点进去发现 RequestConverters 引用的7.6.1版本,
而Request 引用的却是6.4.3版本。 很明显是版本的问题了。那就奇怪了,我引用的7.6.1版本,但是rest-client包却是6.4.3。

原因是因为我用的springboot版本是2.1.6。 这个版本的springboot默认引用的是es 的6.4.3版本。所以我们要在pom.xml中显式的指定es的版本
<properties> <elasticsearch.version>7.6.1</elasticsearch.version> </properties>


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




