我正在使用Spring 4和Tomcat。问题是有时我必须在我的过滤器中抛出(自定义)RuntimeException(控件甚至没有到达控制器)。问题是因为我没有抛出tomcat理解的异常,它被转换为500(内部服务器错误)。我相信403 Forbidden会比500更好(对于我的自定义例外)。我查看了@ExceptionHandler
和@ControllerAdvice
注释。但这些仅在控制器到达控制器时才起作用。
截至目前,我手动将状态设置为过滤器HTTPResponse
中的403。有没有更好的方法来处理这种情况?
答案 0 :(得分:1)
你应该使用这样的东西
在web.xml中设置错误处理程序
<error-page>
<exception-type>java.lang.RuntimeException</exception-type>
<location>/handleExceptionService</location>
</error-page>
所以,当你到达你的服务时,你可以通过错误做你想要的观察。
祝你好运!!!
答案 1 :(得分:0)
You can add in web.xml
<error-page>
<error-code>404</error-code>
<location>/error-404.html</location>
</error-page>
<error-page>
<error-code>403</error-code>
<location>/access_denied.html</location>
</error-page>