记录下es TransportClient遇到的坑,遇到版本问题是最难受的,自己写的Demo项目是正常的,弄到项目中就出错了
Exception in thread "main" java.lang.InstantiationError: org.elasticsearch.common.transport.TransportAddress
at com.huibeijia.util.EsUtil.client(EsUtil.java:48)
at com.huibeijia.es.EsIndex.createIndex(EsIndex.java:112)
at com.huibeijia.data.controller.es.OrderMapping.main(OrderMapping.java:53)
查了半天最后发现jia包里elasticsearch的有两个版本,一个5.6.13,一个自己的pom里6.5.1
最后发现spring-boot 2.0.7里有5.6.13版本的elasticsearch
解决:
1.把自己pom里改回了5.6.13版本,然后把TransportAddress修改为InetSocketTransportAddress,就OK了
client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), Integer.parseInt("9300")));
2.把自己调用的模块里和util模块都引用6.5.1,就可以使用6.5.1了(这是没干掉5.6.13的情况下)