【问题标题】:Correct the classpath of your application so that it contains a single, compatible version of org.elasticsearch.client.IndicesClient更正应用程序的类路径,使其包含一个兼容的 org.elasticsearch.client.IndicesClient 版本
【发布时间】:2019-12-19 17:15:15
【问题描述】:

得到错误喜欢 尝试调用方法 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 Boot 和 Spring Data Elasticsearch?
  • 当使用与构建 Spring Data Elasticsearch 的版本不同的 Elasticsearch 客户端版本时,通常会出现此错误。所以我的问题和安迪的问题一样:你使用什么版本的 Spring Boot(和 Spring Data Elasticsearch)?
  • Springboot 2.1.0 但我在 gradle 文件 org.elasticsearch 6.8.5 中外部包含了 elasticsearch

标签: spring-boot elasticsearch spring-data-elasticsearch


【解决方案1】:

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。

【讨论】:

    猜你喜欢
    • 2022-01-01
    • 2021-06-29
    • 2019-08-11
    • 2021-07-08
    • 2021-11-07
    • 2021-04-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多