首页 > 解决方案 > 更正应用程序的类路径,使其包含一个兼容的 org.elasticsearch.client.IndicesClient 版本

问题描述

出现类似错误尝试调用方法 org.elasticsearch.client.IndicesClient.create(Lorg/elasticsearch/action/admin/indices/create/CreateIndexRequest;[Lorg/apache/http/Header;) Lorg/elasticsearch/action /admin/indices/create/CreateIndexResponse;但它不存在。它的类 org.elasticsearch.client.IndicesClient 可从以下位置获得:

jar:file:/audit.jar!/BOOT-INF/lib/elasticsearch-rest-high-level-client-6.7.0.jar!/org/elasticsearch/client/IndicesClient.class

它是从以下位置加载的:

jar:file:/audit.jar!/BOOT-INF/lib/elasticsearch-rest-high-level-client-6.7.0.jar!

请帮我解决这个问题

标签: spring-bootelasticsearchspring-data-elasticsearch

解决方案


Spring Boot 2.1.x 使用 Spring Data Elasticsearch 3.1.x,后者是针对 Elasticsearch 6.2.2 的库构建的。

如果您想使用 Elasticsearch 6.8.5,您需要将 Spring Data Elasticsearch 版本升级到基于 Elasticsearch 6.8.4 构建的 3.2.3。

我不知道 Spring Boot 2.1.0 是否可以在其自动配置中处理此问题,您可能必须使用以下命令注释您的应用程序:

@SpringBootApplication(exclude = ElasticsearchDataAutoConfiguration.class)

并自行配置 Spring Data Elasticsearch。


推荐阅读