我已经使用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()”方法。所以,你有建议吗,或者我必须在代码中添加一些内容
谢谢.....
最佳答案
发生这种情况的唯一方法是由于path.home
的配置错误。
当Elasticsearch尝试为您的实例生成随机节点名称时,它在{path.home}/config/names.txt
处为looks for a file
如果找不到该文件,您将得到一个(相当不友好和无益的)NullPointerException
。
因此,解决方案是检查“/ home / kenny / Program / Java / elastic”是否确实是ES安装的顶层。
有关correct directory layout的文档,请参见此处。
关于java - 为什么我在elasticsearch构建节点中得到java.lang.nullpointerexception?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35526223/