如何在Java中获取错误原因?

时间:2016-02-21 09:27:23

标签: java exception elasticsearch nullpointerexception extract-error-message

我正在尝试使用elasticsearch 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)

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

1 个答案:

答案 0 :(得分: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不检查资源流 - 它确实应该使用更好的错误消息引发自己的异常。

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