Почему мой servlet stacktrace показывает “Неизвестный источник” для моих классов?

StackOverflow https://stackoverflow.com/questions/944869

Вопрос

В настоящее время я использую Apache Tomcat 5.5.16 для обслуживания поискового API на основе Lucene.

В последнее время у меня возникли некоторые NullPointerExceptions внутри моего класса servlet.Класс называется com.my_company.search.servlet.SearchServlet.

С определенными типами входных данных я могу регулярно создавать исключение NullPointerException, но у меня возникают проблемы с определением, где именно оно находится.

Трассировка стека указывает на то, что здесь возникает ошибка:

com.my_company.search.servlet.SearchServlet.doGet(Unknown Source)

Исходные файлы и .class для этого класса находятся в:

$TOMCAT_HOME/webapps/my_servlet/WEB-INF/classes/com/my_company/search/servlet/

Мой вопрос в том, как я могу заставить Tomcat предоставить мне более описательные местоположения ошибок?

Это было полезно?

Решение

Tomcat не может предоставить вам более подробную информацию, если только рассматриваемые классы не были скомпилированы с отладочной информацией.Без этой отладочной информации JVM не может определить, в какой строке кода произошла ошибка.

Редактировать: Вы можете попросить компилятор включить эту информацию, указав -g вариант при запуске javac в командной строке.Вы также можете указать этот параметр, используя debug параметр для Задача Javac Ant.

Другие советы

вы должны добавить отладочную информацию в свои классы.скомпилируйте их с помощью опции -g:

javac -g YourServlet.java

местоположение неизвестного источника может возникать, когда JIT-компилятор оптимизировал ваш класс.В этот момент исходная информация теряется.чтобы получить исходное местоположение, перезапустите сервер и повторите свой тест.Большую часть времени вы будете получать местоположение в вашем источнике

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top