我正在尝试为项目编辑JSP,并且在从服务器请求JSP时,我在NSP的某个位置获取了NullPointerException。
我的Web服务器(JBoss)报告了异常,但它给了我一个虚假的行号。据报告,异常发生在第702行,但是我的JSP只有146行长,因此我无法确定哪个行阻塞了。
有什么好的技术可以调试JSP中的错误?我正在使用IntelliJ 9 Ultimate作为我的IDE。
谢谢
我正在尝试为项目编辑JSP,并且在从服务器请求JSP时,我在NSP的某个位置获取了NullPointerException。
我的Web服务器(JBoss)报告了异常,但它给了我一个虚假的行号。据报告,异常发生在第702行,但是我的JSP只有146行长,因此我无法确定哪个行阻塞了。
有什么好的技术可以调试JSP中的错误?我正在使用IntelliJ 9 Ultimate作为我的IDE。
谢谢
Answers:
有几种选项可以帮助您:
这个答案实际上说明了如何专门调试JSP:https : //stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea。我从来没有尝试过,所以在使用JSP,JBoss和IntelliJ时遵循了以下三个建议。
请记住,JSP被编译为类。说到第702行时,表示在已编译的类中。如果您有test.jsp
,则类名可能是test_jsp
,因此打开JBoss工作目录并搜索test_jsp.java
(找到正确的目录后,您将看到该目录结构与您的JSP目录结构匹配)。每当遇到JSP异常时,我都可以很容易地找到该行,并且通常将其与JSP中的相应行匹配。
断点在从JSP 调用的 Java类中正常工作。因此,也许您可以将JSP中的Java脚本代码移到一个类中,然后从入口点进行调试。将来,您还可以养成重新安排逻辑的习惯,以使大多数逻辑都位于从JSP调用的类中,并且JSP简单,直接并且希望不会引发任何异常。无论如何,这是个好习惯。
更好的是,将所有(或几乎所有)Java逻辑删除到Java类中,而将JSP保留为HTML和JSP标签。我知道这是不可行的,但是再次避免长期出现这样的问题是一个好主意。
*_jsp.java
课程。
您可以像调试Java代码一样轻松调试JSP页面:
“ JSP文件与调试Java类相同,但是大多数功能(监视,检查等)均未实现。获取变量值的唯一方法是“变量”视图。”
请参阅下面的链接:https :
//www.laliluna.de/articles/posts/debugging-jsp-java-tutorial.html