java.lang.NoSuchMethodError: io.searchbox.action.Action.getURI () Ljava / lang / String

Я получаю сообщение об ошибке при создании приложения для весенней загрузки. Я использую ES, и ошибка возникает, когда jestClient вызывает метод execute. Ошибка:

Вызвано: org.springframework.beans.factory.BeanCreationException: ошибка создания bean-компонента с именем configService: не удалось вызвать метод инициализации; вложенное исключение - java.lang.NoSuchMethodError: io.searchbox.action.Action.getURI () Ljava / lang / String;

Ошибка возникает из-за метода выполнения jestHttpClient.class

public <T extends JestResult> T execute(Action<T> clientRequest, RequestConfig requestConfig) throws IOException {
    HttpUriRequest request = this.prepareRequest(clientRequest, requestConfig);
    CloseableHttpResponse response = null;

    JestResult var5;
    try {
        response = this.executeRequest(request);
        var5 = this.deserializeResponse(response, request, clientRequest);
    } catch (HttpHostConnectException var14) {
        throw new CouldNotConnectException(var14.getHost().toURI(), var14);
    } finally {
        if (response != null) {
            try {
                response.close();
            } catch (IOException var13) {
                log.error("Exception occurred while closing response stream.", var13);
            }
        }

    }

    return var5;

}


person Ashu    schedule 18.10.2019    source источник
comment
Можете ли вы предоставить версию своей зависимости (searchbox-io / Jets)?   -  person Michael Kemmerzell    schedule 18.10.2019


Ответы (1)


Это распространенная ошибка, которая возникает, когда вы компилируете другую версию класса, на которую она ссылается в коде. Это может произойти из-за того, что зависимость импортирована дважды.

Например, вы можете вручную импортировать зависимость, которая содержит io.searchbox.action.Action, но io.searchbox.action.Action также импортируется в зависимости внутри другой зависимости с другой версией.

Просто позаботьтесь о версии, которую вы компилируете, потому что в новейших версиях Jest getURL выглядит следующим образом

String getURI(ElasticsearchVersion elasticsearchVersion);

Но в 5.3.4 это выглядит следующим образом

String getURI();
person Sapikelio    schedule 18.10.2019