【问题标题】:ElasticSearch AbstractMethodError while making client制作客户端时出现 ElasticSearch AbstractMethodError
【发布时间】: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 不需要它吗)?我的问题是由不匹配的 elasticsearchtransport 版本引起的 - 将它们设置为相同的版本可以消除问题。
  • @sorabhsolanki 您可能应该添加一个答案并将其标记为正确的答案

标签: java elasticsearch


【解决方案1】:

我被困在了这个问题上。你不能混合依赖版本。

原来我在一个项目中使用了spring-data-elasticsearch,而该项目依赖于另一个具有普通elasticsearch 依赖项的项目。这些包括不同的版本并导致该错误。

追踪起来并不有趣。

【讨论】:

    【解决方案2】:

    这是一个依赖问题。在 maven pom 中,我有以下依赖项

    <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的依赖,运行正常。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-02
      • 2017-07-05
      • 1970-01-01
      • 2017-06-27
      • 2014-01-29
      • 1970-01-01
      相关资源
      最近更新 更多