elasticsearch,nullpointerexception,extract-error-message,Java,Exception,elasticsearch,Nullpointerexception,Extract Error Message" /> elasticsearch,nullpointerexception,extract-error-message,Java,Exception,elasticsearch,Nullpointerexception,Extract Error Message" />

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

如何获取Java中的错误原因?,java,exception,elasticsearch,nullpointerexception,extract-error-message,Java,Exception,elasticsearch,Nullpointerexception,Extract Error Message,我正在尝试ElasticSearchJavaAPI。我得到了这个错误: 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.random

我正在尝试ElasticSearchJavaAPI。我得到了这个错误:

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)
java.lang.NullPointerException
在java.io.Reader上。(Reader.java:78)
位于java.io.InputStreamReader。(InputStreamReader.java:113)
位于org.elasticsearch.node.internal.InternalSettingsPreparer.randomNodeName(InternalSettingsPreparer.java:198)
位于org.elasticsearch.node.internal.InternalSettingsPreparer.finalizeSettings(InternalSettingsPreparer.java:177)
位于org.elasticsearch.node.internal.InternalSettingsPreparer.prepareSettings(InternalSettingsPreparer.java:64)
位于org.elasticsearch.client.transport.TransportClient$Builder.build(TransportClient.java:119)
位于TryElastic.main(TryElastic.java:64)

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

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

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


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

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

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


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

好的,请查看“TryElastic.java”中的第64行。这是哪一行?
在TryElastic.main(TryElastic.java:64)
——表示您在第64行执行导致空指针异常的操作时出现错误。最有效的方法是在程序上使用调试,断点在第64行。从这一行开始,您应该更深入地了解为什么将is
null
作为构造函数的参数提供给
InputStreamReader
(可能您在定义将作为构造函数参数传递的内容的源代码中没有任何文件或错误)好的,请参阅“TryElastic.java”中的第64行。这是哪一行?
在TryElastic.main(TryElastic.java:64)
——表示您在第64行执行导致空指针异常的操作时出现错误。最有效的方法是在程序上使用调试,断点在第64行。从这一行开始,您应该深入了解为什么将is
null
作为构造函数的参数提供给
InputStreamReader
(可能您在定义将作为构造函数参数传递的内容的源代码中没有任何文件或错误)OOOOO,非常感谢,我不使用.jar来实现我的elasticsearch,但是我立即使用elasticsearch.class OOO,非常感谢,我没有使用.jar来实现我的elasticsearch,但是我立即使用elasticsearch.class