Java错误页面配置

Java错误页面配置,java,tomcat,error-handling,Java,Tomcat,Error Handling,我已经创建了一个404页面,目前正在使用一个我知道不存在的简单页面请求对其进行测试。这段代码将显示我所做的错误页面(也就是我想要的结果) 404 /找不到视频 但是,此代码将显示ApacheTomcat默认错误页面 <!-- CONFIGURATION FOR ERROR PAGES --> <error-page> <exception-type>java.lang.Throwable</exception-type> <

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


404
/找不到视频
但是,此代码将显示ApacheTomcat默认错误页面

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

java.lang.Throwable
/找不到视频

你知道为什么会发生这种情况,或者我可以尝试解决这个问题吗?尽管选项1可以工作,但我更喜欢选项2,因为我不希望每个异常类型都有一个特定的错误页面

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

最后,您必须有两个独立的
错误页面定义,一个用于容器相关错误(基本上是
4xx
状态代码),另一个用于ApacheTomcat默认错误页面的
500
/
throwable
类型错误条件,对吗?还是500内部服务器错误?您能在tomcat控制台中看到任何异常跟踪吗?你能确认你收到了什么http状态码吗
<!-- CONFIGURATION FOR ERROR PAGES -->
<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <!--<error-code>404</error-code>-->
    <location>/videoNotFound</location>
</error-page>