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