Ich verwende derzeit Apache Tomcat 5.5.16, um eine Lucene-basierte Such-API zu bedienen.
In letzter Zeit hatte ich einige NullPointerExceptions in meiner Servlet-Klasse. Die Klasse heißt com.my_company.search.servlet.SearchServlet
.
Mit bestimmten Arten der Eingabe kann ich routinemäßig eine NullPointerException erstellen, aber ich habe Probleme herauszufinden, wo genau es ist.
Der StackTrace zeigt an, dass der Fehler hier auftritt:
com.my_company.search.servlet.SearchServlet.doGet(Unknown Source)
Die Quell- und .class-Dateien für diese Klasse befinden sich alle in:
$TOMCAT_HOME/webapps/my_servlet/WEB-INF/classes/com/my_company/search/servlet/
Meine Frage ist, wie kann ich Tomcat dazu bringen, mir beschreibende Fehlerstellen zu liefern?
Tomcat kann Ihnen keine detaillierteren Informationen bereitstellen, wenn die betreffenden Klassen nicht mit Debuginformationen kompiliert wurden. Ohne diese Debuginformationen kann die JVM nicht bestimmen, an welcher Codezeile der Fehler aufgetreten ist.
Bearbeiten: Sie können den Compiler bitten, diese Informationen einzufügen, indem Sie -g
option , wenn javac
in der Befehlszeile ausgeführt wird. Sie können diese Option auch mit dem Parameter debug
der Javac Ant-Aufgabe angeben.
Der Speicherort unbekannter Quelle kann auftreten, wenn der JIT-Compiler Ihre Klasse optimiert hat. Zu diesem Zeitpunkt ist die Quellinformation verloren. Um den ursprünglichen Speicherort zu erhalten, starten Sie den Server neu und wiederholen Sie den Test. Die meiste Zeit erhalten Sie den Ort in Ihrer Quelle
Tags und Links java nullpointerexception exception stack-trace servlets