【发布时间】:2017-03-11 05:46:40
【问题描述】:
我有一个在专用网络中运行的 elasticsearch 实例。当我尝试使用 InetAddress 访问它时,它给出了一个错误:java.net.UnknownHostException:
TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress
.getByName("http://elasticsearch.myorg.net"), 9200));
但是,当我尝试使用 curl 命令访问它时,我能够得到响应。
curl http://elasticsearch.myorg.net:9200
可能导致此问题的原因是什么?
我的解决方法是使用 resttemplate https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html。
这是一个非常简洁和简单的解决方案。
【问题讨论】:
-
您是否尝试过删除名称的 http:// 部分?也许代理设置正在你的路上?
-
我不应该需要代理,因为我在同一个私有网络上。而且我没有为 curl 使用任何代理...
-
试过删除http,也不管用
-
getByName需要主机名,在本例中为elasticsearch.myorg.net。如果你可以ping elasticsearch.myorg.net和nslookup elasticsearch.myorg.net它应该可以工作。 -
就是这个问题,我ping不通,只有curl有效
标签: java curl elasticsearch network-programming