在Elastic Beanstalk的Tomcat 8.5.75中如何用ErrorReportValve配置静态错误页?
问题:Elastic Beanstalk/Amazon Linux环境下Tomcat ErrorReportValve的400错误页路径配置失效
我已在Server.xml的Host段配置了ErrorReportValve,配置内容如下:
<Valve className="org.apache.catalina.valves.ErrorReportValve" errorCode.400="webapps/ROOT/error.html" showReport="false" showServerInfo="false" />
Tomcat文档对errorCode.nnn的说明如下:
nnn代表HTTP错误码,此配置项指定返回对应错误码时使用的UTF-8编码HTML文件路径。例如,errorCode.404指定HTTP 404错误对应的返回文件。路径可以是相对路径或绝对路径,若为相对路径,必须相对于$CATALINA_BASE。特殊值errorCode.0可用于定义默认错误页,当未为对应状态码定义错误页时使用。若未找到匹配的错误页,则返回默认的Error Report Valve响应。
我的$CATALINA_BASE指向/usr/share/tomcat8,错误页确实存在于指定的相对路径下:
# ls -lrt /usr/share/tomcat8/webapps/ROOT/error.html -rw-r--r-- 1 tomcat tomcat 2934 Aug 31 18:24 /usr/share/tomcat8/webapps/ROOT/error.html
目前的问题:
- ErrorReportValve本身已生效,但
errorCode.nnn的路径配置始终无效,尝试过多种静态路径和相对路径都不行 - 同样的配置在Eclipse动态Web项目中可以正常工作,但在Elastic Beanstalk/Amazon Linux环境下完全失效
- web.xml中通过传统方式配置的404/500错误页能够正常使用
请问有人在Amazon Linux/Tomcat环境中成功配置过400错误静态页吗?
内容的提问来源于stack exchange,提问作者Andrew M
相关产品推荐
相关产品推荐

