【问题标题】:Java Error Page ConfigurationJava 错误页面配置
【发布时间】:2012-10-18 10:20:10
【问题描述】:

我创建了一个 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,因为我不想为每种异常类型提供特定的错误页面。

【问题讨论】:

  • by apache tomcat 默认错误页面你的意思是默认404页面对吗?还是 500 内部服务器错误?你能在你的 tomcat 控制台中看到任何异常跟踪吗?你能确认你收到的是什么http状态码吗

标签: java tomcat error-handling


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-27
    • 1970-01-01
    • 2013-08-04
    • 1970-01-01
    • 2019-02-12
    • 1970-01-01
    • 2013-06-09
    • 1970-01-01
    相关资源
    最近更新 更多