Интеграция упругого поиска Spring: Причина: java.lang.NoSuchMethodError: org.elasticsearch.common.settings.Settings $ Builder.put ([Ljava / lang / Object;) - PullRequest
0 голосов
/ 19 декабря 2018

Я обновляю эластичный 2.x до 6.x.Я должен обновить зависимость данных пружины, чтобы сделать упругое обновление.(Использование управляемой службы эластичного облака с x-pack-transport)

Вот мои зависимости:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
        <version>3.1.3.RELEASE</version>
    </dependency>

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>x-pack-transport</artifactId>
        <version>5.6.1</version>
    </dependency>

Это включает версию 6.2.2 зависимости от эластичного поиска.

ЯПолучение следующей ошибки при инициализации приложения пружины.

Код подключения:

private Client getEsClient(String clusterIps, String clusterName) throws UnknownHostException
{

    Settings settings = Settings.builder()
            .put("client.transport.nodes_sampler_interval", "5s")
            .put("client.transport.sniff", false)
            .put("transport.tcp.compress", true)
            .put("cluster.name", "cluster-id")
            .put("xpack.security.transport.ssl.enabled", true)
            .put("request.headers.X-Found-Cluster", "cluster-id")
            .put("xpack.security.user", "user:password")
            .put("xpack.security.transport.ssl.verification_mode", "none")
            .build();

    TransportClient client = new PreBuiltXPackTransportClient(settings);

    client.addTransportAddress(
            new TransportAddress(InetAddress.getByName("<cluster>.us-west1.gcp.cloud.es.io"), 9343));
    return client;
}

Вот исключение, которое выдается при инициализации контекста пружины:

Причина: java.lang.NoSuchMethodError: org.elasticsearch.common.settings.Settings $ Builder.put ([Ljava / lang / Object;) Lorg /asticsearch / common / settings / Settings $ Builder;

в org.elasticsearch.xpack.tification.email.Account. (Account.java:71)

в org.elasticsearch.xpack.XPackPlugin. (XPackPlugin.java:192)

в sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Собственный метод)

в sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)

в sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)

в java.lang.reflect.Constructor.newInstance (Constructor.java:423)

в org.elasticsearch.plugins.PluginsService.loadPlugin (PluginsService.java:556)

Пожалуйста, дайте мне знать, если кто-нибудь сталкивался с этой проблемой раньше.

Заранее спасибо за помощь:)

1 Ответ

0 голосов
/ 19 декабря 2018

Я выяснил проблему, я использовал несовместимую версию зависимости x-pack, которая является 5.6.1, пружинные данные 3.1.3.RELEASE использует версию 6.2.2 эластичного драйвера, поэтому мы должны использовать совместимую зависимость x-pack иэто 6.2.2.

Вот обновленная зависимость

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-elasticsearch</artifactId>
        <version>3.1.3.RELEASE</version>
    </dependency>


    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>x-pack-transport</artifactId>
        <version>6.2.2</version>
    </dependency>

Документация доступна здесь: https://www.elastic.co/guide/en/elasticsearch/reference/current/setup-xpack-client.html

...