1

私は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 エラーの原因を知りたいです。あなたの提案が必要です、ありがとう...

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 に答える