Ich habe einen einfachen Code von Elasticsearch in Java wie folgt aus:Warum konnte mein elasticsearch keinen Transportclient in JAVA API erstellen?
public class TryElastic {
public static void main(String[] args) throws UnknownHostException {
Map<String, Object> json = new HashMap<String, Object>();
json.put("user","kimchy");
json.put("postDate",new Date());
json.put("message","trying out Elasticsearch");
try {
Settings settings = Settings.settingsBuilder()
.put("cluster.name", "elasticsearch")
.put("client.transport.sniff", true).build();
TransportClient client = TransportClient.builder().settings(settings).build();
//client.addTransportAddress(new InetSocketTransportAddress(InetAddress.getByName("localhost"), 9300));
} catch (NoNodeAvailableException e) {
System.out.println(e.toString());
}
System.out.println("test");
}
}
Es ist sehr einfach, aber ich habe einen Fehler in der folgenden Zeile:
TransportClient client = TransportClient.builder().settings(settings).build();
Es Fehlermeldung angezeigt wie folgt:
Exception in thread "main" java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:78)
at java.io.InputStreamReader.<init>(InputStreamReader.java:113)
at org.elasticsearch.node.internal.InternalSettingsPreparer.randomNodeName(InternalSettingsPreparer.java:198)
at org.elasticsearch.node.internal.InternalSettingsPreparer.finalizeSettings(InternalSettingsPreparer.java:177)
at org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:64)
at org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:119)
at TryElastic.main(TryElastic.java:64)
Also, können Sie mir geben, sug Gestion, ich habe nach der Lösung gesucht, und ich kann das nicht finden. Gibt es irgendeine Konfiguration, die ich implementieren muss? Mein elasticsearch-Server wurde korrekt ausgeführt. Er kann den Index ausführen und Abfragen von der Eingabeaufforderung abrufen. Danke ...
Welche Version von ES verwenden Sie? Haben Sie zufällig eine Datei namens 'names.txt' in Ihrem ES' config'-Ordner? Können Sie zeigen, wie Sie den ES-Serverprozess starten? Eine einfache Möglichkeit, dies zu beheben, besteht darin, die Eigenschaft 'node.name' in Ihrer Konfigurationsdatei' elasticsearch.yml' zu setzen. – Val