8

我目前正在使用 Apache Tomcat 5.5.16 来提供基于 Lucene 的搜索 API。

最近,我的 servlet 类中出现了一些 NullPointerExceptions。该类称为com.my_company.search.servlet.SearchServlet.

对于某些类型的输入,我通常可以创建一个 NullPointerException,但我无法确定它到底在哪里。

StackTrace 表明该错误发生在此处:

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

这个类的源文件和 .class 文件都在:

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

我的问题是,如何让 Tomcat 为我提供更具描述性的错误位置?

4

3 回答 3

21

除非有问题的类是用调试信息编译的,否则 Tomcat 无法为您提供更详细的信息。如果没有此调试信息,JVM 无法确定错误发生在哪一行代码上。

编辑:您可以通过在命令行上运行时指定-g 选项来要求编译器包含此信息。javac您还可以使用Javac Ant 任务debug的参数指定此选项。

于 2009-06-03T13:51:44.987 回答
4

您必须将调试信息添加到您的类中。使用以下选项编译它们-g

javac -g YourServlet.java
于 2009-06-03T14:01:07.183 回答
0

当 JIT 编译器优化您的类时,可能会出现位置未知来源。此时,源信息丢失。要获取原始位置,请重新启动服务器并重试测试。大多数情况下,您会在源中获得位置

于 2009-06-03T13:54:20.130 回答