我正在查看一个非常古老的项目,并尝试修复此项目所面临的一些问题,这些问题与其JSP页面抛出nullpointer异常有关。 JSP页面抛出一个空指针异常,如下面的示例所示。
/e2fo/tools/user/search/searchUser.jsp. Exception thrown : java.lang.NullPointerException
at com.ibm._jsp._searchUser_5F_TA._jspService(_searchUser_5F.java:207)
现在这个问题是不可重现的,所以只要看一下上面的例外,我就需要把它放在哪里可能是问题所在。 据我所知,JSP页面被编译成java servlet,因此异常堆栈中显示的.java文件是servlet文件。这是一个中间文件,我们没有看到这个,我正在运行websphere 6.1。在这种情况下,如何确定或者将servlet中的行号映射到JSP文件?
答案 0 :(得分:3)
上次我碰到这个时,中间文件在我找到它的时候就消失了。我所做的是将有意的编译器错误引入JSP并再次运行它。当它遇到该异常时,它会保存Servlet源,以便您可以纠正代码错误。
我只是倾向于走到最底层并放置:
<% novariable.toString(); %>
答案 1 :(得分:1)
尝试在JSP引擎配置中使用 classdebuginfo 参数。
如果您想尝试查看生成的.java文件,则需要使用 keepgenerated 参数。
要知道在何处设置此参数,请参阅配置JSP引擎参数(http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.nd.multiplatform.doc/info/ae/ae/tweb_jspengine.html)
这个链接可能会有所帮助:调试服务器上的JSP文件(http://publib.boulder.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=/com.ibm.websphere.base.iseries.doc/info/welcome_base.html)
答案 2 :(得分:0)
您可以在相关服务器的工作目录中找到已编译的JSP文件。我不再做Websphere了,但我知道它是建立在Tomcat之上的,默认情况下Tomcat将已编译的JSP文件存储在安装目录的/work
文件夹中。看看它,也许它使用相同的foldername。
如果仍然徒劳,那么对Websphere根文件夹中与文件名_searchUser_5F.java
匹配的文件进行基于平台的文件搜索。