2016-07-29 24 views
0

我正在使用elasticsearch(v2.3.2/Windows 7)本地節點在java測試中創建一個引發空指針異常的索引。Elasticsearch本地節點客戶端在java測試中創建索引時的NPE

測試代碼如下:

CreateIndexResponse response = esClient.admin().indices().prepareCreate("mytestindex") 
     .setSettings(Settings.builder() 
       .put("number_of_replicas", 0) 
       .put("number_of_shards", 1)) 
     .execute().actionGet(); 

我已經驗證esClient被彈簧創建,不爲空。創建客戶端的代碼是:

@Bean 
public Client localElasticsearchClient() { 

    Settings settings = Settings.settingsBuilder() 
      .put("path.home", "/tmp/elasticsearch") 
      .put("path.data", "/tmp/elasticsearch") 
      .build(); 

    return NodeBuilder.nodeBuilder() 
      .local(true) 
      .settings(settings) 
      .build() 
      .client(); 

} 

堆棧跟蹤如下:

java.lang.NullPointerException 
at org.elasticsearch.action.support.master.TransportMasterNodeAction$AsyncSingleAction.<init>(TransportMasterNodeAction.java:129) 
at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:107) 
at org.elasticsearch.action.support.master.TransportMasterNodeAction.doExecute(TransportMasterNodeAction.java:51) 
at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:137) 
at org.elasticsearch.action.support.TransportAction.execute(TransportAction.java:85) 
at org.elasticsearch.client.node.NodeClient.doExecute(NodeClient.java:58) 

我看到了有關它的東西here但對如何糾正它沒有資料。

回答

0

其實答案是隱含在這個link

我沒有打電話node.start()方法給出

return NodeBuilder.nodeBuilder() 
     .local(true) 
     .settings(settings) 
     .build() 
     .start() 
     .client(); 
相關問題