spring-boot - 更正应用程序的类路径,使其包含一个兼容的 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 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。
推荐阅读
- hybris - 在 hybris 中安装插件
- scala - 是否可以递归地重写这个函数?
- servicestack - 在测试项目中使用 ModularStartup
- mysql - 具有地理空间 ST_Contains 的 Mysql 选择计数对于多行非常慢
- knative - 没有 TLS 的本地本地服务和大使
- javascript - 重新排序不同容器中的 html 元素
- r - 如果字符串部分已经出现在同一组的另一个观察中,则删除观察
- javascript - Uncaught SyntaxError: Unexpected token < in react js。无法将数据从父母传递给孩子
- android - RecycleView 在导航回被替换的 Fragment 时如何知道他的状态
- python - 如何使用 Python 的标签名称获取特定标签内的文本