«Страница глобальной ошибки» - это обязательное поведение сервлета 3.0+, его нельзя отключить, просто настройте его так, как вы хотите.
По умолчанию «страница глобальной ошибки»«местоположение с установленной по умолчанию установкой Jetty не определено, то есть это приведет к появлению страницы ошибки по умолчанию, отображаемой ErrorHandler
.
. Чтобы настроить« глобальную страницу ошибки »сервлета 3.0+, вы должны определить веб-дескриптор.(в вашем WEB-INF/web.xml
) иметь запись error-page
без объявленного кода состояния или исключения.
Тот факт, что вы видите «/ error», указывает на то, что что-то в вашей среде преднамеренно устанавливает «глобальную ошибку».page "к этому значению.
Например:
<!-- defined as servlet spec global error page -->
<error-page>
<location>/global-error</location>
</error-page>
<!-- defined by response status code -->
<error-page>
<error-code>500</error-code>
<location>/generic-error-on-server</location>
</error-page>
<!-- defined by exception type -->
<error-page>
<exception-type>java.io.IOException</exception-type>
<location>/error-in-io</location>
</error-page>
Во встроенном Jetty WebAppContext
может использоваться для вызова getErrorHandler()
, который всегда будет по крайней мере org.eclipse.jetty.server.handler.ErrorHandler
, но также может быть более полезным org.eclipse.jetty.servlet.ErrorPageErrorHandler
.
Если вы получаете org.eclipse.jetty.servlet.ErrorPageErrorHandler
, продолжайте и звоните ...
ErrorPageErrorHandler errors = (ErrorPageErrorHandler) webappContext.getErrorHandler();
errors.addErrorPage(ErrorPageErrorHandler.GLOBAL_ERROR_PAGE, "/myglobalerror");
Опять же, обратите внимание, что вы не можете установитьэто к нулю или пусто или любой другой вариант "я нехотите, чтобы он был установлен ", поскольку это все равно приведет к отображению и поведению страницы ошибки по умолчанию.