java - Java中如何获取错误原因?

标签 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)

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

最佳答案

如果你查看可能导致 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 不会检查资源流 - 它确实应该引发一个自己的异常,并提供更好的错误消息。

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

关于java - Java中如何获取错误原因?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35534419/

相关文章:

c# - "Asynchronous operations are not allowed in this context"

python - 不清楚如何使用 python elasticsearch 更新 ElasticSearch

elasticsearch - Elasticsearch可以建议缺少数组的项吗?

java - 尽管条件不相等,字符串仍被添加到 ArrayList

Java编码——有多个正确答案的提示

java - 如果可能的话,如何限制在控制台中打印通用异常消息?

amazon-web-services - 无论如何为 AWS Elasticsearch 域 url 创建一个友好的 URL?

java - 在Java中将XML作为字符串发布,何时刷新并关闭连接?

java - 如何将 AbstractTableModel 保存到文件中?

python - 为什么在我排除之后不能调用异常?