ElasticSearch 2.0 Java API:java.lang.ClassNotFoundException:org.elasticsearch.common.settings.ImmutableSettings $ Builder [英] ElasticSearch 2.0 Java API: java.lang.ClassNotFoundException: org.elasticsearch.common.settings.ImmutableSettings$Builder
问题描述
我已经更新了我的Spring Boot项目以使用新的ElasticSearch 2 API,并在启动时收到此错误:
导致通过:java.lang.NoClassDefFoundError:org / elasticsearch / common / settings / ImmutableSettings $ Builder
在java.lang.Class.getDeclaredMethods0(本机方法)
在java.lang.Class.privateGetDeclaredMethods(Class。 java:2701)
在java.lang.Class.getDeclaredMethods(Class.java:1975)
我的相关Maven依赖关系是:
<依赖关系>
< groupId> org.springframework.boot< / groupId>
< artifactId> spring-boot-starter-data-elasticsearch< / artifactId>
< version> 1.3.0.M5< / version>
< / dependency>
<依赖关系>
< groupId> org.elasticsearch< / groupId>
< artifactId> elasticsearch< / artifactId>
< version> 2.0.0-rc1< / version>
< / dependency>
你对我做错了什么提示吗?
谢谢
在ES 2.0中, ImmutableSettings
类确实被删除了。 此问题提及它和破坏2.0更改文档也提到。
<而您现在可以使用
Settings.builder()
而不是 ImmutableSettings.builder()
。 Settings
类的当前实现可以看到这里 所有仍然使用的问题 ImmutableSettings
是关于Elasticsearch的 pre-2.0版本的问题。
I have updated my Spring Boot project to use the new ElasticSearch 2 API and I get this error at startup:
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)
My relevant Maven dependencies are:
<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>
Do you have any hint on what I am doing wrong?
Thanks
In ES 2.0, the ImmutableSettings
class was indeed removed. This issue mentions it and the breaking changes documentation for 2.0 also mention it.
Instead you can now use Settings.builder()
instead of ImmutableSettings.builder()
. The current implementation of the Settings
class can be seen here
All the questions that still use ImmutableSettings
are questions about pre-2.0 versions of Elasticsearch.
这篇关于ElasticSearch 2.0 Java API:java.lang.ClassNotFoundException:org.elasticsearch.common.settings.ImmutableSettings $ Builder的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!