禁用公共 Tomcat6 堆栈跟踪

禁用公共 Tomcat6 堆栈跟踪

有人能告诉我如何禁止 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 服务器,可以实现很多变化。

相关内容