Новая функция страницы глобальной ошибки Servlet 3.0 не работает в Tomcat 7 - PullRequest
9 голосов
/ 03 ноября 2011

В спецификации Servlet 3.0 указано, что в web.xml может быть указано глобальное сообщение об ошибке, охватывающее все ошибки сервера.

Пример:

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

Старый метод:

<error-page>
    <error-code>401</error-code>
    <location>/error.jsp</location>
</error-page>

При добавлении этого нового метода в мой web.xml в Tomcat 7 он не работает.Как это вызвано и как я могу решить это?

1 Ответ

9 голосов
/ 04 ноября 2011

Это будет ошибка в Tomcat 7. Он отлично работает, например, на Glassfish 3.

Пришло время сообщить об ошибке ребятам из Tomcat, поэтому я сделал: выпуск 52135 .


Обновление : оно было закрыто, поскольку спецификация сервлета была "неясна", что <exception-type> и <error-code> стали необязательными. Это было показано только на рисунке 14-10 спецификации Servlet 3.0 и буквально нигде в тексте, хотя новый Servlet 3.0 XSD подтверждает это изменение. Позже это было вновь открыто, и была опубликована ссылка на хорошую статью в блоге , которая подтверждает это только еще раз. Теперь осталось только дождаться, пока разработчики Tomcat действительно исправят это. Основываясь на исходном коде Tomcat, насколько я вижу, это не будет тривиальным исправлением, и, возможно, именно поэтому оно было закрыто так скоро.


Обновление 2 : это наконец исправлено и реализовано в Tomcat 7.0.29.

...