我使用elasticsearch以非常简单的代码行测试我的应用程序。像这样:
Node node = nodeBuilder()
.settings(Settings.settingsBuilder().put("cluster.name", "elasticsearch").put("clster.transport.sniff", true).put("path.home", "/home/kenny/Program/Java/elastic"$
.node();
但是我得到了这样的错误:
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.prepareEnvironment(InternalSettingsPreparer.java:101)
at org.elasticsearch.node.Node.<init>(Node.java:128)
at org.elasticsearch.node.NodeBuilder.build(NodeBuilder.java:145)
at org.elasticsearch.node.NodeBuilder.node(NodeBuilder.java:152)
at TryElastic.main(TryElastic.java:56)
我不知道如何解决这个问题,我试着寻找解决方案。错误日志中的第56行,请参阅上面的“.node()”方法。所以,你有建议,或者我要在我的代码中添加一些内容
感谢.....
答案 0 :(得分:0)
这种情况发生的唯一方法是由于path.home
的错误配置。
当Elasticsearch尝试为您的实例生成随机节点名称时,它{path.home}/config/names.txt
位于NullPointerException
如果找不到该文件,您将获得{相当不友好且无益的} {{1}}。
所以解决方法是检查&#34; / home / kenny / Program / Java / elastic&#34;实际上是ES安装的顶级。
请参阅此处了解looks for a file上的文档。