我已经更新了Spring Boot项目以使用新的ElasticSearch 2 API,并且在启动时遇到此错误:
Caused by: java.lang.NoClassDefFoundError: org/elasticsearch/common/settings/ImmutableSettings$Builder at java.lang.Class.getDeclaredMethods0(Native Method) at java.lang.Class.privateGetDeclaredMethods(Class.java:2701) at java.lang.Class.getDeclaredMethods(Class.java:1975)
我相关的Maven依赖项是:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-elasticsearch</artifactId> <version>1.3.0.M5</version> </dependency> <dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>2.0.0-rc1</version> </dependency>
您对我做错了什么吗?
谢谢
在ES 2.0中,ImmutableSettings确实删除了该类。这个问题提到了它,而2.0的重大更改文档也提到了它。
ImmutableSettings
相反,您现在可以使用Settings.builder()代替ImmutableSettings.builder()。Settings该类的当前实现可以在这里看到
Settings.builder()
ImmutableSettings.builder()
Settings
仍然使用的所有问题ImmutableSettings都是有关Elasticsearch 2.0之前版本 的问题。