/ / Host mit Java InetAddress kann nicht gefunden werden, aber mit Curl - Java, Curl, Elasticsearch, Netzwerkprogrammierung

Kann nicht finden Host mit Java InetAddress aber in der Lage zu finden, mit Curl - Java, Curl, elasticsearch, Netzwerk-Programmierung

Ich habe eine elasticsearch-Instanz, die in einem privaten Netzwerk ausgeführt wird. Als ich versuchte, mit InetAddress darauf zuzugreifen, gab es einen Fehler: java.net.UnknownHostException:

TransportClient client = new PreBuiltTransportClient(settings)
.addTransportAddress(new InetSocketTransportAddress(InetAddress
.getByName("http://elasticsearch.myorg.net"), 9200));

Als ich jedoch versuchte, mit dem Befehl curl darauf zuzugreifen, konnte ich die Antwort erhalten.

curl http://elasticsearch.myorg.net:9200

Was könnte der Grund sein, der dieses Problem verursachen könnte?


Ein Workaround für mich war, resttemplate zu verwenden https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/client/RestTemplate.html.

Es ist eine ziemlich ordentliche und einfache Lösung.

Antworten:

2 für die Antwort № 1

Verwenden Sie Port 9300 anstelle von 9200. 9200 ist für die REST-API, 9300 für die Kommunikation zwischen Clustern und den Transport-Client.

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