Java 错误页面配置

标签 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,因为我不想为每种异常类型设置特定的错误页面。

最佳答案

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

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

关于Java 错误页面配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13115922/

相关文章:

java - 如何在Java中的新线程中播放.MIDI文件?

java - DateTimeFormatter 无法按预期与 JODA 一起工作

java - Tomcat 中的 JNDI 数据源问题

javascript - 无法在本地环境中从RollBar的最小化格式转换Angular v9的JavaScript错误堆栈跟踪

java - 如何使用代码将一个或多个包正确地 move 到java中的另一个包中

java - log4j2 RollingFile Appender 不更改 Tomcat 上的文件名?

java - Cpanel 和 Tomcat 7 servlet 映射

node.js - 如何将Node中发生的错误传达给Web用户?

swift - 一个简单的快速程序的 fatal error

java - 如何比较 char 数组然后替换值