org.elasticsearch.common.transport.InetSocketTransportAddress не найден в Elasticsearch 6

Мой код отлично работает в elasticsearch 5, но когда я обновился с 5 до 6, то. это показывает

org.elasticsearch.common.transport.InetSocketTransportAddress not found

полная трассировка стека:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project elastic-store: Compilation failure
[ERROR] /home/elastic/elastic-store/src/main/java/com/qw/psence/store/es/common/ESClient.java:[12,42] cannot find symbol
[ERROR] symbol:   class InetSocketTransportAddress
[ERROR] location: package org.elasticsearch.common.transport
[ERROR] -> [Help 1]
[ERROR] 
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR] 
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[ERROR]

может ли кто-нибудь помочь мне решить эту проблему?

Примечание. Банку Elaticsearch можно использовать.


person Arayan Singh    schedule 22.06.2018    source источник


Ответы (3)


Elastic search 6.0 удалил класс InetSocketTransportAddress. Я решил эту проблему, заменив класс InetSocketTransportAddress на класс TransportAddress.

// on startup

TransportClient client = new PreBuiltTransportClient(Settings.EMPTY)
        .addTransportAddress(new TransportAddress(InetAddress.getByName("host1"), 9300))
        .addTransportAddress(new TransportAddress(InetAddress.getByName("host2"), 9300));

// on shutdown

client.close();
person Arayan Singh    schedule 03.07.2018

Для этой проблемы предлагается много решений, но я получал эту ошибку, потому что, когда я пытался создать базовую конфигурацию elasticsearch с помощью SpringBoot:

Я забыл запустить elasticsearch...

:facepalm:

Итак, просто:

  1. откройте командную строку в папке bin в каталоге установки Elasticsearch*
  2. введите elasticsearch
  3. нажмите Ввод

Чтобы убедиться, что это работает, откройте http://localhost:9200/ в браузере. Вы должны получить ответ JSON, содержащий имя, имя_кластера, версию elasticsearch и т. д.

*(В Windows) Откройте папку ES_INSTALLATION_DIR\elasticsearch-x.x.x\bin, удерживая клавишу Shift, щелкните правой кнопкой мыши область папки и в раскрывающемся меню выберите Open command window here.

person Filip Savic    schedule 16.09.2019

В моем случае проблема заключалась в конфликтующей версии elasticsearch, которая была добавлена ​​в мой проект файлом spring-boot-dependencies. Если ваш pom не наследуется от spring-boot-starter-parent, а вместо этого использует раздел dependencyManagement для импорта spring-boot-dependencies, и вам нужна более старая версия elasticsearch в пути к классам, то вот решение: InetSocketTransportAddress. Всегда запускайте mvn -Dverbose=true help:effective-pom и проверяйте эффективные pom на наличие конфликтов. -Dverbose=true здесь критично. Это позволяет увидеть, откуда берется нежелательная зависимость.

person Aleksey    schedule 18.10.2019