Java错误页面配置

时间:2012-10-29 04:39:23

标签: java tomcat error-handling

我创建了一个404页面,目前正在使用我知道不存在的简单页面请求对其进行测试。此代码将显示我所做的错误页面(也就是我想要的结果)。

<!-- CONFIGURATION FOR ERROR PAGES -->
<error-page>
    <!--<exception-type>java.lang.Throwable</exception-type>-->
    <error-code>404</error-code>
    <location>/videoNotFound</location>
</error-page>

但是,此代码将显示apache tomcat默认错误页面

<!-- CONFIGURATION FOR ERROR PAGES -->
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <!--<error-code>404</error-code>-->
    <location>/videoNotFound</location>
</error-page>

任何想法为什么会发生这种情况,或者我可以尝试解决这个问题?即使选项1有效,我也更喜欢选项2,因为我不希望每个异常类型都有特定的错误页面。

1 个答案:

答案 0 :(得分:2)

404java.lang.Throwable是在不同情况下触发的两种截然不同的错误情况。您自己测试的404是通过请求不存在/无法访问的资源触发的,而java.lang.Throwable是由于内部服务器/编程错误而发生的错误情况,并且它已表示通过http状态代码500。这种情况,您无法通过简单地访问无法访问的资源来模拟; 4xx状态代码的性质通常是在请求甚至到达您的Web应用程序之前抛出它们,而500系列错误代码主要是Web应用程序生成的。测试此操作的唯一方法是在 Web应用程序代码中抛出throwable ExceptionError 的实例。

最后,您必须有两个单独的error-page定义,一个用于与容器相关的错误(基本上是4xx状态代码),另一个用于500 / {{ 1}}类型错误条件