Есть ли способ настроить использование ОДНОЙ страницы пользовательских ошибок для ВСЕХ кодов ошибок в tomcat web.xml?

Как сказано в заголовке, я хочу изменить страницы ошибок по умолчанию в tomcat и сделал:

<error-page>
  <error-code>500</error-code>
  <location>/error_500.html</location>
</error-page>

 <error-page>
   <error-code>404</error-code>
   <location>/error_404.html</location>
</error-page>

Можно ли использовать коды подстановочных ошибок, например

<error-page>
  <error-code>*</error-code>
  <location>/error.html</location>
</error-page>

?

(Пример выше не работает, но есть ли другой способ?)

Спасибо

Ответ 1

Нет, в Tomcat нет никакого способа.

Спецификация Servlet 3.0 поддерживает глобальную страницу ошибок следующим образом:

<error-page>
    <location>/error.html</location>
</error-page>

Поэтому теоретически он должен работать, по крайней мере, в Tomcat 7.0. Но это не правильно реализовано в Tomcat 7.0. Я когда-либо сообщал вопрос 52135 об этом, но они отрицали это. Однако он работает с другими контейнерами Servlet 3.0.

Однако вы можете обходиться с этим путем реализации специфического для Tomcat класса ErrorReportValve, который затем регистрируется как <Host errorReportValveClass>.