新的Servlet 3.0全局错误页面功能在Tomcat 7上不起作用

jnr*_*orp 9 java error-handling tomcat servlets tomcat7

Servlet 3.0规范声明可以列出全局错误消息web.xml以包含所有服务器错误.

例:

<error-page>
    <location>/error.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

旧方法:

<error-page>
    <error-code>401</error-code>
    <location>/error.jsp</location>
</error-page>
Run Code Online (Sandbox Code Playgroud)

web.xml在Tomcat 7中添加这个新方法时,它不起作用.这是怎么造成的,我该如何解决?

Bal*_*usC 9

这将是Tomcat 7中的一个错误.例如,它可以在Glassfish 3上正常工作.

现在是时候向Tomcat报告一个bug,所以我做了:发行52135.


更新:它已关闭,因为Servlet规范"不清楚" <exception-type><error-code>成为可选项.这只是在Servlet 3.0规范的图14-10中显示,并且文本中没有字面,即使新的Servlet 3.0 XSD确认了这一变化.这是后来重新打开的,并发布了一篇很好的博客文章的链接,这再次证实了这一点.现在我们只需要等待Tomcat开发人员真正解决它.根据我所看到的Tomcat源代码,它不会是一个微不足道的修复,这也许就是为什么它很快就关闭了.


更新2:最终修复并在Tomcat 7.0.29中实现.