Назад | Перейти на главную страницу

Отключить общедоступную трассировку стека Tomcat6

Может ли кто-нибудь посоветовать мне, как я могу отключить 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-сервер.