三人行必有我师

maven项目引入6.1.2的elasticsearch,但是找不到InetSocketTransportAddress,需要引用什么

Elasticsearch | 作者 PhoebM | 发布于2018年02月01日 | 阅读数:9102

pom文件中引入6.1.2版本的elasticsearch
       <dependency>
            <groupId>org.elasticsearch</groupId>
            <artifactId>elasticsearch</artifactId>
            <version>6.1.2</version>
        </dependency>
        
        <dependency>
            <groupId>org.elasticsearch.client</groupId>
            <artifactId>transport</artifactId>
            <version>6.1.2</version>
        </dependency>
但是找不到InetSocketTransportAddress;; 报红线client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName(cluster_serverip), 9300));
已邀请:

shiyuan

赞同来自: PhoebM

client.addTransportAddress(new TransportAddress(InetAddress.getByName("localhost"), 9300));

thislj

赞同来自:

原因:
       transport6.1.2依赖transport-netty4-client相应的版本,如果pom文件没有显示引入transport-netty4-client依赖并指定版本,maven会自动引入较低的版本,而在transport-netty4-client较低的版本中会使用InetSocketTransportAddress这一个类,transport6.1.2又没有这个类,就会报找不到类的异常。
解决:
       在pom文件中加入下面这段
<!-- https://mvnrepository.com/arti ... lient -->
<dependency>
    <groupId>org.elasticsearch.plugin</groupId>
    <artifactId>transport-netty4-client</artifactId>
    <version>6.1.2</version>
</dependency>
 
 

要回复问题请先登录注册