Как я могу получить причину ошибки в Java?
Я пытаюсь использовать 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. Мне нужно ваше предложение, спасибо...
1 ответ
Если вы посмотрите на источник метода, который, вероятно, вызывает NPE
вы видите, что он пытается загрузить ресурс /config/names.txt
который, очевидно, возвращает ноль и запускает NPE в конструкторе Reader. (Номера строк трассировки не совпадают точно из-за разных версий). К сожалению, Elastic не проверяет поток ресурсов - он действительно должен вызвать собственное исключение с лучшим сообщением об ошибке.
Поэтому, чтобы решить эту проблему, вы должны проверить, доступен ли этот ресурс в вашей установке.