5

私はこのような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サーバーが正常に実行されました。インデックスを実行し、コマンドプロンプトからクエリを取得できます。ありがとう...

+0

どのESのバージョンを使用していますか?あなたのESの 'config'フォルダに' names.txt'という名前のファイルがありますか? ESサーバープロセスの開始方法を表示できますか?これを修正する簡単な方法は、 'elasticsearch.yml'設定ファイルに' node.name'プロパティを設定することです。 – Val

答えて

2

このコードは私のために働く。これはバージョンの問題です。 transportClientのデフォルトのポートは9300で、コードはこの Elasticsearchで2.0

使用をコンパイルしません:

設定の設定= Settings.settingsBuilder() .put( "cluster.name"、clusterNameの).build ();

クライアントクライアント= TransportClient.builder()。設定(設定).build() .addTransportAddress(新しいInetSocketTransportAddress(新しいInetSocketAddress( "127.0.0.1"、9300))));

参照:Here's the link

関連する問題