为什么我的 servlet 堆栈跟踪显示“未知来源” 为我的课程?

发布于 2024-07-22 20:25:24 字数 532 浏览 6 评论 0原文

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

I'm currently using Apache Tomcat 5.5.16 to serve a Lucene-based search API.

Lately I've been having some NullPointerExceptions inside my servlet class. The class is called com.my_company.search.servlet.SearchServlet.

With certain types of input I can routinely create a NullPointerException, but I'm having trouble figuring out where exactly it is.

The StackTrace indicates that the bug is occuring here:

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

The source and .class files for this class is all in:

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

My question is, how can I get Tomcat to provide me with more descriptive error locations?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

探春 2024-07-29 20:25:24

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

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

Tomcat cannot provide you more detailed information unless the classes in question were compiled with debugging information. Without this debugging information, the JVM cannot determine what line of code the error occurred on.

Edit: You can ask the compiler to include this information by specifying the -g option when running javac on the command line. You can also specify this option using the debug parameter of the Javac Ant task.

夏花。依旧 2024-07-29 20:25:24

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

javac -g YourServlet.java

you have to add debugging information to your classes. compile them with the option -g:

javac -g YourServlet.java
〗斷ホ乔殘χμё〖 2024-07-29 20:25:24

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

the location unknown source can occurs when the JIT compiler has optimized your class. At that point the source information is lost. to get the original location, restart the server and retry your test. Most of the time you will get the location in your source

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文