Я попытался использовать новую функцию сервлета 3.0 с плагином причала maven.Jetty servlet 3.0 и страница с ошибкой
<plugin>
<groupId>org.mortbay.jetty</groupId>
<artifactId>jetty-maven-plugin</artifactId>
<version>8.1.5.v20120716</version>
</plugin>
часть моей web.xml
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
version="3.0">
...
<error-page>
<location>/info/error</location>
</error-page>
</web-app>
В моем понимании вы можете установить страницу ошибки по умолчанию в сервлете 3.0. Когда я тестирую это с mvn jetty:run
и произвольным исключением, он не работает. Jetty показывает только стек, как и без конфигурации error-page
. Когда я запускаю его с tomcat7:run
, он действительно работает.
Я искал базу данных ошибок eclipse и документацию на причал, но не нашел никакой информации об этом.
Может кто-нибудь подтвердить, что это ошибка в причале?
OP использует Servlet 3.0. Страница глобальной ошибки - это новая функция Servlet 3.0. См. Также среди других фигур 14-10 в спецификации Servlet 3.0 и https://blogs.oracle.com/arungupta/entry/totd_136_default_error_page То, что вы указываете, справедливо только для Servlet 2.5 или старше. Кстати, Tomcat 7 сделал ту же ошибку. Сначала они проигнорировали мой отчет об ошибке, но все равно внедрили его: https://issues.apache.org/bugzilla/show_bug.cgi?id=52135 – BalusC
Я открыл ошибку в спецификации. См. Http://java.net/jira/browse/SERVLET_SPEC-49. Это необходимо добавить к спецификации 3.1. Предполагая, что это произойдет, я снова открою https://bugs.eclipse.org/bugs/show_bug.cgi?id=392239. – Jan
, независимо от того, что спецификация сервлета говорит, я бы счел эту замечательную функцию. И я не думаю, что эта функция нарушает спецификацию. Но, наоборот, это может быть одинаково. Так почему бы не поднять его и позволить причалу еще одна замечательная особенность. – Janning