一尘不染

ElasticSearch 2.0 Java API:java.lang.ClassNotFoundException:org.elasticsearch.common.settings.ImmutableSettings $ Builder

spring-boot

我已经更新了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>

您对我做错了什么吗?

谢谢


阅读 470

收藏
2020-05-30

共1个答案

一尘不染

在ES
2.0中,ImmutableSettings确实删除了该类。这个问题提到了它,而2.0重大更改文档也提到了它。

相反,您现在可以使用Settings.builder()代替ImmutableSettings.builder()Settings该类的当前实现可以在这里看到

仍然使用的所有问题ImmutableSettings都是有关Elasticsearch 2.0之前版本 的问题。

2020-05-30