是否可以记录正在访问的确切URL以及传递的参数?我从使用相同jsp文件名的多个站点记录了一系列错误。我似乎无法复制我的开发盒上的服务器错误,所以我想尽可能多地记录以尝试缩小问题。
我得到的错误是:
01-Mar-2013 21:37:58 org.apache.catalina.core.ApplicationDispatcher invoke
SEVERE: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:991)
at java.lang.Double.valueOf(Double.java:475)
at org.apache.jsp.product_jsp._jspService(product_jsp.java:212)
如果可以确定试图访问的内容,我可以解决错误,如果有意义的话。
非常感谢任何帮助: - )
答案 0 :(得分:0)
您可以在web.xml
中定义错误处理程序页面,如下所示:
<error-page>
<exception-type>java.lang.Exception</exception-type>
<location>/...</location>
</error-page>
并在该页面/ servlet中记录原始请求信息。它应该可用,因为根据Servlet规范
如果错误处理程序的位置是servlet或JSP页面:
■容器创建的原始未包装的请求和响应对象是 传递给servlet或JSP页面。
■请求路径和属性设置为RequestDispatcher.forward 错误资源已经执行。
因此,您可以使用getRequestURL()或其他方法或任何请求属性javax.servlet.error.status_code
,javax.servlet.error.exception_type
,javax.servlet.error.message
,javax.servlet.error.exception
,javax.servlet.error.request_uri
,javax.servlet.error.servlet_name
。
获取所有需要的信息以便记录。