2016-07-29 26 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(); 
相关问题