【问题标题】:tomcat8 - custom error page for 400tomcat8 - 400 的自定义错误页面
【发布时间】:2018-06-07 08:26:02
【问题描述】:

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

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

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

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

似乎没有办法处理它。现在我尝试在 nginx 中处理它。但是要在那里处理它,我需要设置“proxy_intercept_errors = on”,并且我不想从我的代理中截取所有错误代码。

那么在这种情况下渲染自定义 400 页面就没有运气了吗?或者有什么解决方法吗?

【问题讨论】:

    标签: tomcat nginx error-handling web.xml


    【解决方案1】:

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

    为了实现这一点,以下文章非常有帮助:http://robupcraft.com/tomcat-valves/

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-03-19
      • 1970-01-01
      • 2015-08-26
      • 2020-02-22
      • 2017-10-01
      相关资源
      最近更新 更多