【发布时间】:2017-11-02 09:37:07
【问题描述】:
我正在尝试制作弹性搜索传输客户端,但出现以下错误
引起:java.lang.AbstractMethodError: org.elasticsearch.transport.TcpTransport.sendMessage(Ljava/lang/Object;Lorg/elasticsearch/common/bytes/BytesReference;Ljava/lang/Runnable;)V 在 org.elasticsearch.transport.TcpTransport.internalSendMessage(TcpTransport.java:1111) 在 org.elasticsearch.transport.TcpTransport.sendRequestToChannel(TcpTransport.java:1093) 在 org.elasticsearch.transport.TcpTransport.executeHandshake(TcpTransport.java:1600)
这是我的代码:
Settings settings = Settings.builder()
.put("cluster.name", "elasticsearch")
.put("node.name", "node1").build();
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
这是依赖问题吗?
【问题讨论】:
-
您的依赖项是什么样的?如果您有 Maven 或 Gradle 项目,您可以发布您的依赖项吗?
-
是的,这是一个依赖问题。在 maven 依赖中,我有这些依赖
<dependency> <groupId>org.elasticsearch</groupId> <artifactId>elasticsearch</artifactId> <version>5.6.2</version> </dependency> <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.6.3</version> </dependency>现在我已经删除了 org.elasticsearch 的依赖,现在它运行良好。 -
我遇到了类似的问题,但无法摆脱
elasticsearch依赖项(transport不需要它吗)?我的问题是由不匹配的elasticsearch和transport版本引起的 - 将它们设置为相同的版本可以消除问题。 -
@sorabhsolanki 您可能应该添加一个答案并将其标记为正确的答案
标签: java elasticsearch