创建客户端时出现 NoSuchMethodError RequestOptions$Builder.removeHeader
编辑创建客户端时出现 NoSuchMethodError RequestOptions$Builder.removeHeader
编辑在某些情况下,您在创建 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 插件时,尤其会发生这种情况,因为此插件 为常用的库定义了版本,包括 elasticsearch-rest-client
。根据项目中使用的 Spring Boot 版本,该版本可能已过时。
要解决此问题,您必须在项目中显式添加 elasticsearch-rest-client
依赖项,其版本与 elasticsearch-java
相同(另请参阅 安装)。
使用 Gradle
implementation 'org.elasticsearch.client:elasticsearch-rest-client:8.17.0'
使用 Maven
<dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>elasticsearch-rest-client</artifactId> <version>8.17.0</version> </dependency>