加载中

创建客户端时出现 NoSuchMethodError

在某些情况下,创建 ElasticsearchClient 时可能会遇到错误,提示方法 RequestOptions$Builder.removeHeader 不存在

java.lang.NoSuchMethodError: 'org.elasticsearch.client.RequestOptions$Builder org.elasticsearch.client.RequestOptions$Builder.removeHeader(java.lang.String)'
		

该方法是在 elasticsearch-rest-client 7.16.0 版本中引入的。出现此错误是因为您的项目使用了该依赖项的较旧版本。

当项目使用 Spring Boot Maven Plugin 时,这种情况尤为常见,因为该插件 定义了常用库的版本,包括 elasticsearch-rest-client。根据项目中使用的 Spring Boot 版本,该版本可能会过时。

要解决此问题,您必须在项目中显式添加 elasticsearch-rest-client 依赖项,并使其版本与 elasticsearch-java 相同(另请参见 安装)。

使用 Gradle

implementation 'org.elasticsearch.client:elasticsearch-rest-client:9.3.0'
		

使用 Maven

<dependency>
    <groupId>org.elasticsearch.client</groupId>
    <artifactId>elasticsearch-rest-client</artifactId>
    <version>9.3.0</version>
</dependency>
		
© . This website operates independently and is not affiliated with or endorsed by Elasticsearch B.V. All brand names, logos, and trademarks are the property of their respective owners.