私はこのようなJavaでelasticsearchの簡単なコードを持っている:私のelasticsearchがJAVA APIでtransportclientを構築できなかったのはなぜですか?
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");
}
}
それは非常に簡単ですが、私は次の行でエラーが発生しました:それはエラーメッセージを表示
TransportClient client = TransportClient.builder().settings(settings).build();
をこのように:
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)
私は解決策を探していましたが、私はそれを見つけることができません。私が実装しなければならない設定はありますか?私のelasticsearchサーバーが正常に実行されました。インデックスを実行し、コマンドプロンプトからクエリを取得できます。ありがとう...
どのESのバージョンを使用していますか?あなたのESの 'config'フォルダに' names.txt'という名前のファイルがありますか? ESサーバープロセスの開始方法を表示できますか?これを修正する簡単な方法は、 'elasticsearch.yml'設定ファイルに' node.name'プロパティを設定することです。 – Val