JSR-45(JSP中的行号)支持Jetty

时间:2012-01-07 15:48:26

标签: eclipse jsp jetty line-numbers

如何从编译的JSP中获取堆栈跟踪以包含实际JSP文件中的行号,而不是中间的Servlet java文件?

我正在使用Jetty 8.我目前正在以编程方式接收Jetty实例。

(如果对线号支持的东西感兴趣,我使用Eclipse进行编码,我不太了解JSR-45 SMAP逻辑 - 它是一个“侧车”文件,还是这个信息放在实际的类文件?)

将调试,断点工作,重新。 JSP的?

1 个答案:

答案 0 :(得分:3)

更新:2017年6月

Jetty 9不再使用Glassfish JSP。

它使用Apache Jasper JSP,同样的规则适用如下。

原始答案

Jetty使用Glassfish项目中的JspServlet来管理其所有JSP处理。

JspServlet上有3个init参数(参见${jetty.home}/etc/webdefault.xml内容)可能有所帮助。

  • “keepgenerated”(布尔值)true
  • “development”(布尔值)true
  • “classdebuginfo”(布尔值)true

将所有这些开发时间设置设置为true,您应该会看到更多信息。 以及要引用的中间源文件。这个生成的源文件包含一行注释掉的jsp源,然后生成的java源文件,你也可以用它来反向引用你的jsp的哪一行引起异常。

另请注意,Glassfish的JspServlet也使用java.util.logging作为其底层日志记录基础结构。要查看JspUsage的所有细节(包括jsp行号),请尝试在FINEST级别为“org.apache.jasper”包空间设置java.util.logging。