我正在AWS上运行一个Tomcat。 问题是,当一个请求崩溃,一个exception,tomcat不仅发送503,而且还发送在html中的exceptio堆栈跟踪,暴露我的源代码给一个查看者不需要看到它。
我如何禁用这个?
错误页面由一个简单的error handling程序错误报告阀门生成 。 您可以通过将这些行添加到server.xml的Host部分来隐藏堆栈跟踪( showReport )以及服务器信息:
<Valve className="org.apache.catalina.valves.ErrorReportValve" showReport="false" showServerInfo="false" />
另一个解决scheme是对每个HTTP错误代码使用自定义,用户友好的错误页面 :
<error-page> <error-code>500</error-code> <location>/error500.jsp</location> </error-page>
以及每一个不同的Throwable :
<error-page> <exception-type>java.lang.Exception</exception-type> <location>/error-Exception.jsp</location> </error-page> <error-page> <exception-type>java.sql.SQLException</exception-type> <location>/error-SQLException.jsp</location> </error-page>