1

我正在尝试弹性搜索 Java API。我得到了这个错误:

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)

那么,我怎样才能得到错误原因呢?它只说这是一个空指针错误。我可以打开和编辑的唯一文件是我的文件“TryElastic.java”。我想知道,是什么导致 java.io.Reader 错误。需要你的建议,谢谢...

4

1 回答 1

0

如果您查看可能导致 NPE 的方法的来源

https://github.com/elastic/elasticsearch/blob/master/core/src/main/java/org/elasticsearch/node/internal/InternalSettingsPreparer.java#L172

您会看到它正在尝试加载一个/config/names.txt显然返回 null 并在 Reader 构造函数中触发 NPE 的资源。(由于使用的版本不同,Stracktrace 行号不完全匹配)。不幸的是,Elastic 不检查资源流——它确实应该引发自己的异常,并提供更好的错误消息。

因此,要解决问题,您应该检查该资源在您的安装中是否可用。

于 2016-02-21T09:44:40.687 回答