Деактивировать обработчик ошибок 404 по умолчанию Jetty

Я хочу предоставить пользовательскую страницу ошибок 404 в моем веб-приложении Spring 3.1, но я не могу отключить страницу ошибок 404 по умолчанию Jetty 8.

Jetty 8, из коробки, предоставляет страницу ошибки 404 по умолчанию: при посещении веб-сайта, размещенного на причале, и предоставлении URL-адреса, который не обрабатывается сервлетом (например, посетив http://www.example.com/nonexisting), Jetty ответы с своя собственная страница ошибки HTML по умолчанию:

HTTP ERROR 404

Problem accessing /nonexisting. Reason:

    Not Found
Powered by Jetty://

для замены этого значения по умолчанию поведение,

но мой сайт по-прежнему возвращает собственная ошибка HTML Jetty по умолчанию страница.

официальная документация Jetty 8 говорит о настройке "пользовательских страниц ошибок", но предложения там говорят

  • чтобы настроить пользовательский обработчик ошибок причала (я не хочу этого делать, я хочу сделать это внутри моей собственной весны @Controller как уже упоминалось выше)
  • чтобы создать "поймать весь контекст и создать "корневое" веб-приложение, сопоставленное с / URI."(Я не хочу делать это, как внутри моего web.xml у меня уже есть сопоставленные весенние MVC DispatcherServlet to/.

как я могу отключить обработчик ошибок по умолчанию Jetty и сделать обработку ошибок, как указано выше?

2 ответов


решением моей проблемы было добавить пользовательский org.eclipse.jetty.server.handler.ErrorHandler.

если пользователь явно не указать ErrorHandler, экземпляр сервера Jetty, похоже, регистрирует значение по умолчанию ErrorHandler.

как описано на http://www.eclipse.org/jetty/documentation/current/custom-error-pages.html, чтобы зарегистрировать пользовательский ErrorHandler, вы можете выполнить следующие шаги.

  1. реализовать некоторые org.eclipse.jetty.server.handler.ErrorHandler подкласс, например,com.example.CustomErrorHandler.
  2. сделать этот подкласс доступен для вашего экземпляра сервера Eclipse, например, путем связывания CustomErrorHandler на jar файл, а затем копирование этого на jetty.xml:
    <?xml version="1.0"?>
    <!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN"
    "http://www.eclipse.org/jetty/configure_9_0.dtd">
    <Configure id="Server" class="org.eclipse.jetty.server.Server">
    
      <!-- more configuration -->
    
      <Call name="addBean">
        <Arg>
          <New class="com.example.CustomErrorHandler">
            <Set name="server"><Ref refid="Server" /></Set>
          </New>
        </Arg>
      </Call>
    </Configure>
    

вот как определить пользовательские страницы ошибок -

http://wiki.eclipse.org/Jetty/Howto/Custom_Error_Pages