tomcat8 - 400的自定义错误页面

时间:2018-06-07 08:26:03

标签: tomcat nginx error-handling web.xml

在Tomcat(v8.5.24)中,带有查询参数的URL包含一个unncode花括号(" {")会产生400错误。

您可以将Tomcat配置为允许使用" relaxedQueryChars"。但这不是我想要的。我尝试编写自定义错误页面并将其添加到web.xml

<error-page>
        <error-code>400</error-code>
        <location>/error/error400</location>
</error-page>

但这不起作用,因为Tomcat实际上是在查杀请求并且不处理错误页面(org.apache.coyote.http11.Http11Processor:737)

似乎无法处理它。现在我试着在nginx中处理它。但要处理它,我需要设置&#34; proxy_intercept_errors = on&#34;而且我不想拦截我的代理中的所有错误代码。

所以在这种情况下渲染自定义400页面没有运气吗?或者有任何解决方法吗?

1 个答案:

答案 0 :(得分:0)

我也遇到了这个问题,作为一种解决方法,我通过扩展org.apache.catalina.valves.ErrorReportValve类并在Tomcat上对其进行配置来实现自己的ErrorReportValve。

为完成此任务,以下文章真的很有帮助:http://robupcraft.com/tomcat-valves/

请注意,要实现(并成功构建),您需要tomcat-catalina依赖项。

相关问题