我目前正在使用 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 为我提供更具描述性的错误位置?

有帮助吗?

解决方案

Tomcat 无法为您提供更详细的信息,除非相关类是使用调试信息进行编译的。如果没有这些调试信息,JVM 就无法确定错误发生在哪一行代码上。

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

其他提示

您必须添加调试信息到你的类。带有选项-g编译它们:

javac -g YourServlet.java

当JIT编译器具有优化类发生位置的未知源即可。在这一点上源信息丢失。让原来的位置,重新启动服务器,然后重试测试。大多数时候,你会在你的源获取位置

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top