如何从编译的JSP中获取堆栈跟踪以包含实际JSP文件中的行号,而不是中间的Servlet java文件?
我正在使用Jetty 8.我目前正在以编程方式接收Jetty实例。
(如果对线号支持的东西感兴趣,我使用Eclipse进行编码,我不太了解JSR-45 SMAP逻辑 - 它是一个“侧车”文件,还是这个信息放在实际的类文件?)
将调试,断点工作,重新。 JSP的?
答案 0 :(得分:3)
更新:2017年6月
Jetty 9不再使用Glassfish JSP。
它使用Apache Jasper JSP,同样的规则适用如下。
原始答案
Jetty使用Glassfish项目中的JspServlet来管理其所有JSP处理。
JspServlet上有3个init参数(参见${jetty.home}/etc/webdefault.xml
内容)可能有所帮助。
将所有这些开发时间设置设置为true,您应该会看到更多信息。 以及要引用的中间源文件。这个生成的源文件包含一行注释掉的jsp源,然后生成的java源文件,你也可以用它来反向引用你的jsp的哪一行引起异常。
另请注意,Glassfish的JspServlet也使用java.util.logging作为其底层日志记录基础结构。要查看JspUsage的所有细节(包括jsp行号),请尝试在FINEST级别为“org.apache.jasper”包空间设置java.util.logging。