official Elasticsearch docs告诉实例化ElasticsearchClient
,如下所示:
ElasticsearchClient client = new ElasticsearchClient(transport);
当我使用 Gradle 构建管理在 Grails 3 应用程序中编写此内容后,我收到以下编译错误:无法实例化接口(interface)“ElasticsearchClient”
import
语句是:import org.elasticsearch.client.ElasticsearchClient
。
事实上,ElasticsearchClient
被解析为:
package org.elasticsearch.client;
// ...
public interface ElasticsearchClient {
Gradle 依赖项为:compile 'org.elasticsearch:elasticsearch:7.17.2'
- 他们为什么建议在文档中实例化接口(interface)?
- 我该怎么做才能使其编译并使用 Elasticsearch 客户端?
最佳答案
原因是:ElasticsearchClient
被错误解析为仍位于我本地用户的 .gradle
目录中的旧的 elasticsearch JAR 文件。从 .gradle
中删除旧 JAR 使我能够进行正确的导入。
正确的导入是
导入 co.elastic.clients.elasticsearch.ElasticsearchClient
代替
导入org.elasticsearch.client.ElasticsearchClient
关于gradle - 无法实例化接口(interface) 'ElasticsearchClient',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71954556/