it-swarm.cn

如何调试JSP?

我正在尝试为项目编辑JSP,并且在从服务器请求JSP时,我在NSP的某个位置获取了NullPointerException。

我的Web服务器(JBoss)报告了异常,但它给了我一个虚假的行号。据报告,异常发生在第702行,但是我的JSP只有146行长,因此我无法确定哪一行阻塞。

有什么好的技术可以调试JSP中的错误?我正在使用IntelliJ 9 Ultimate作为我的IDE。

谢谢

28
ampersandre

有几种选项可以帮助您:

  1. 这个答案实际上解释了如何专门调试JSP: https://stackoverflow.com/questions/33739/jsp-debugging-in-intellij-idea 。我从来没有尝试过,所以在使用JSP,JBoss和IntelliJ时遵循了以下三个建议。

  2. 请记住,JSP被编译为类。说到第702行时,表示在已编译的类中。如果你有 test.jsp,类名可能是test_jsp,因此打开您的JBoss工作目录并搜索test_jsp.Java(一旦找到正确的目录,您将看到该目录结构与您的JSP目录结构匹配)。每当遇到JSP异常时,我都可以很容易地找到该行,并且通常将其与JSP中的相应行匹配。

  3. 断点在Java从JSP调用)的类中工作得很好。因此,也许您可​​以将Java您在JSP中拥有的脚本代码进入一个类并从入口点进行调试。将来,您还可以养成重新安排逻辑的习惯,以使大部分逻辑都位于从JSP调用的类中,并且JSP非常简单,直接,并且希望不会抛出任何异常。

  4. 更好的是,将所有(或几乎所有)Java逻辑放入Java类,将JSP保留为HTML和JSP标签。我知道这是不可行的,对吧?远离,但是再次避免长期出现这样的问题是一个好主意。

30
Nicole