2013-06-19 15 views
7

Chcę podać niestandardową stronę błędu 404 w mojej aplikacji internetowej Spring 3.1, ale nie mogę dezaktywować domyślnej strony błędu 404 Jetty 8.Dezaktywuj domyślną obsługę błędu 404 Jetty

Jetty 8, po wyjęciu z pudełka, zapewnia domyślną stronę 404 błędzie: podczas odwiedzania strony internetowej Jetty gospodarzem, a podanie ścieżki URL, który nie jest obsługiwany przez każdy serwlet (np odwiedzając http://www.example.com/nonexisting), reakcje Jetty z jego własny błąd strona domyślna HTML:

HTTP ERROR 404 

Problem accessing /nonexisting. Reason: 

    Not Found 
Powered by Jetty:// 

Aby zastąpić to domyślne zachowanie,

ale moja strona wciąż powraca własne domyślne HTML błędzie stronę molo w.

Jetty 8's official documentation talks about setting up a "custom error pages", ale sugestie powiedzieć

  • skonfigurować niestandardową Jetty obsługi błędów (nie chcę tego robić, chcę to zrobić wewnątrz własnej Wiosna @Controller jak wspomniano powyżej)
  • , aby utworzyć aplikację WWW "catch all context and create" root mapowaną na identyfikator URI /. " (Nie chcę, aby to zrobić, jak w moim web.xml już odwzorowane Wiosna MVC na DispatcherServlet do /.

Jak mogę wyłączyć domyślną obsługi błędów molo i mają obsługę błędów zrobienia jak wskazano powyżej?

Odpowiedz

6

rozwiązanie mojego problemu było dodanie niestandardowych org.eclipse.jetty.server.handler.ErrorHandler

Jeśli użytkownik nie określa jawnie jakiegoś ErrorHandler, instancja serwera Jetty wydaje się domyślnie zarejestrować ErrorHandler.

Zgodnie z instrukcją http://www.eclipse.org/jetty/documentation/current/custom-error-pages.html, aby zarejestrować niestandardową ErrorHandler, można wykonać następujące kroki.

  1. Implementacja podklasy org.eclipse.jetty.server.handler.ErrorHandler, np. com.example.CustomErrorHandler.
  2. Udostępnij tę podklasę dla instancji serwera Eclipse, np. przez dołączenie CustomErrorHandler w pliku jar, a następnie skopiowanie tego pliku jar do katalogu ${jetty.base}/lib/ext.
  3. Konfiguracja instancji serwera Jetty mieć ten zwyczaj ErrorHandler zarejestrowany jako Jaś Fasola:

plików 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> 
Powiązane problemy