2017-03-11 31 views
1

我有一個在專用網絡內運行的elasticsearch實例。當我試圖利用InetAddress來訪問它,它給出了一個錯誤:的java.net.UnknownHostException:無法找到使用Java InetAddress,但能夠找到使用捲曲的主機

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

這是一個非常簡潔的解決方案。

+0

您是否嘗試刪除_http:// _部分名稱?也許代理設置正在你的路上? –

+0

我不應該需要一個代理,因爲我在同一privnt網絡。我沒有使用任何代理捲曲ayway ... – hao

+0

嘗試刪除http,doesnt工作要麼 – hao

回答

2

使用端口9300而不是9200. 9200用於REST API,9300用於羣集間通信和傳輸客戶端。

https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/transport-client.html

+0

不確定您看到此信息的位置。我試過用9300,反應是:這不是一個HTTP端口。 – hao

+0

https://www.elastic.co/guide/en/elasticsearch/guide/current/_talking_to_elasticsearch.html上的文檔提及端口9300作爲傳輸客戶端使用的端口 – sideshowbarker

+0

對於卷頁和瀏覽器請求,請使用9200。對於傳輸客戶端,請在您提供的構造函數片段中使用9300。 – ryanlutgen