Может ли кто-нибудь посоветовать мне, как я могу отключить Tomcat6 от отображения вывода stacktrace в браузер?
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>
Мне сказали, что установка этого места даст белый экран, если файл не существует, однако я получаю трассировку стека на экран.
Я считаю, что вверху ваших .jsp-страниц вам также нужно добавить что-то вроде этого:
<%@ page errorPage="errorpage.jsp" %>
Не уверен, но возможно, что вам, возможно, придется добавить элемент страницы с ошибкой в локальный файл web.xml вашего приложения.
Если вы поместите HTTP-сервер перед tomcat, вы не только сможете обслуживать страницу, если 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-сервер.