riorio
riorio

Reputation: 6816

Spring Boot & Elastic client - NoSuchMethodError: org.elasticsearch.action.support.IndicesOptions.ignoreThrottled()Z

We created a Spring Boot 2.1.7.RELEASE app with an ElasticSearch 7.3.0 client.

When trying to run the Elastic client we get the following error for this line:

SearchResponse searchResponse = client.search(searchRequest, RequestOptions.DEFAULT);

Handler dispatch failed; nested exception is java.lang.NoSuchMethodError: org.elasticsearch.action.support.IndicesOptions.ignoreThrottled()Z] with root cause 
java.lang.NoSuchMethodError: org.elasticsearch.action.support.IndicesOptions.ignoreThrottled()Z
  at org.elasticsearch.client.RequestConverters$Params.withIndicesOptions(RequestConverters.java:966)
at org.elasticsearch.client.RequestConverters.addSearchRequestParams(RequestConverters.java:417)
at org.elasticsearch.client.RequestConverters.search(RequestConverters.java:404)
at org.elasticsearch.client.RestHighLevelClient.lambda$search$2(RestHighLevelClient.java:932)
at org.elasticsearch.client.RestHighLevelClient.internalPerformRequest(RestHighLevelClient.java:1450)
at org.elasticsearch.client.RestHighLevelClient.performRequest(RestHighLevelClient.java:1424)
at org.elasticsearch.client.RestHighLevelClient.performRequestAndParseEntity(RestHighLevelClient.java:1394)
at org.elasticsearch.client.RestHighLevelClient.search(RestHighLevelClient.java:930)

We are using these dependencies:

 <properties>
    <spring-boot-version>2.1.7.RELEASE</spring-boot-version>
    <elasticsearch.version>7.0.0</elasticsearch.version>
</properties>

     <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
        <version>${spring-boot-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
        <version>${spring-boot-version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <version>${spring-boot-version}</version>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <version>${spring-boot-version}</version>
        <scope>test</scope>
    </dependency>

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>7.3.0</version>
    </dependency>

We found this post that caused us to add the elasticsearch.version property, but it didn't help.

We also run mvn dependency:tree -Dverbose to see if there is a conjunction of Elastic dependencies, but it seems that only the Elastic Client has Elastic related jar.

UPDATE

Following this post we tried to downgrade the Elastic client version to 7.1.1 but it didn't help

Upvotes: 1

Views: 4151

Answers (1)

riorio
riorio

Reputation: 6816

Following this answer here, we discovered that the Elastic server has a 6.5.4 version.

Changing the dependency to

<elasticsearch.version>6.5.4</elasticsearch.version>

Or

    <dependency>
        <groupId>org.elasticsearch.client</groupId>
        <artifactId>elasticsearch-rest-high-level-client</artifactId>
        <version>${elasticsearch.version}</version>
    </dependency>

Solved the issue.

Upvotes: 1

Related Questions