有人能告诉我如何禁止 Tomcat6 在浏览器中显示堆栈跟踪输出吗?
Tomcat:6.0.29
我对 /opt/apache-tomcat-6.0.29/conf/web.xml 做了以下更改
<error-page>
<exception-type>java.lang.Throwable</exception-type>
<location>/error.jsp</location>
</error-page>
有人告诉我,如果文件不存在,那么放置它就会出现白屏,但是我得到了屏幕上的堆栈跟踪。
答案1
我相信您还需要在 .jsp 页面的顶部添加如下内容:
<%@ page errorPage="errorpage.jsp" %>
答案2
不确定,但您可能还需要在应用程序的本地 web.xml 文件中添加错误页面元素。
答案3
如果在 tomcat 前面放置一个 HTTP 服务器,那么不仅可以在 tomcat 关闭时提供页面,还可以覆盖 tomcat 生成的错误页面,并且仍然可以通过直接进入 tomcat 查看堆栈跟踪。
例如,如果您使用 Apache HTTPD,您可以使用该ProxyErrorOverride
指令来显示本地 HTML 页面,而不是堆栈跟踪。例如
# Do not proxy the 500 error page to tomcat
ProxyPass /my500error.html !
# Proxy all other requests to tomcat running an HTTP connector on port 8080
ProxyPass / http://localhost:8080/
ProxyPassReverse / http://localhost:8080/
# Override 500 error page from tomcat
ProxyErrorOverride on
ErrorDocument 500 /my500error.html
AJP
使用代替HTTP
和您选择的 HTTP 服务器,可以实现很多变化。