Spring Boot - benutzerdefinierte 404-Seite mit standalone-tomcat

Ich arbeite mit einer Spring-boot-Anwendung innerhalb eines eigenständigen tomcat-Instanz, und ich bin versucht, überschreiben Sie die Fehler-Seiten. Von meinem Verständnis, Frühling bietet einen filter ErrorPageFilter, die mir erlaubt, einfach nur setup Fehler-Seiten als normale Federn EmbeddedServletContainerCustomizer in diesem Fall behandeln genau.

Also ich habe meine standard-auto-Konfiguration/servlet Initialisierung in einer Klasse:

@Configuration
@ComponentScan
@EnableAutoConfiguration(exclude = [ GroovyTemplateAutoConfiguration, SecurityAutoConfiguration, ErrorMvcAutoConfiguration, JmxAutoConfiguration ] )
class Application extends SpringBootServletInitializer {

    @Override protected SpringApplicationBuilder configure( SpringApplicationBuilder application ) {
        application.sources( Application )
    }

(Ich bin mit der gleichen Klasse für die Autokonfiguration und servlet-init, das ist der Grund, warum ich gerade an meinem Application Klasse in der configure-Methode)

Sich den Quellcode für SpringBootServletInitializer es sieht aus wie die ErrorPageFilter Klasse Hinzugefügt wird, indem nur die Erweiterung, dass Klasse hier. Ich schaltete das ErrorMvcAutoConfiguration - aber auch hier an, dass der source-code sieht es aus wie, dass ist nur die Einstellung Standard-Fehler-Seiten und nicht wirklich die Einstellung nichts mit der ErrorPageFilter.

Dann habe ich meinen Fehler config file:

@Configuration
class ErrorConfiguration implements EmbeddedServletContainerCustomizer {

    @Override public void customize( ConfigurableEmbeddedServletContainer container ) {
        container.addErrorPages(new ErrorPage( HttpStatus.NOT_FOUND, "/errors/404" ))
    }

Allerdings, wenn ich besuchen Sie eine ungültige URL, und ich DispatcherServlet nicht finden können, ein match dann bekomme ich nur Kater /404.html - nicht meine Ansicht verbunden "/errors/404" (ich habe diesen Pfad zugeordnet, thymeleaf view-template, das funktioniert - wenn ich navigieren Sie zu " /errors/404 es zeigt ok an)

Irgendwelche Ideen, warum meine eigene Fehler-Seite nicht funktioniert? tracing-Protokolle, bekomme ich eine Linie über die ErrorPageFilter konfiguriert und die setup ok beim starten der Anwendung, dann aber keine Erwähnung der filter etwas zu tun, wenn eine Anfrage kommt.

  • Das Beispiel in der Dokumentation ist mit EmbeddedServletContainerFactory. Siehe: docs.Frühling.io/spring-boot/docs/current/Referenz/htmlsingle/...
  • Genial - ich habe die Suche die Dokumentation für Tage, nicht sicher, wie ich verpasst,! Habe ich das falsch verstanden den Punkt der ErrorPageFilter Klasse dann? Die Kommentare in den Quellcode/javadoc wirklich machen es klingen wie der alleinige Zweck dieser Klasse ist es, benutzerdefinierte Fehlerseiten im standalone-KRIEG-Bereitstellungen?
InformationsquelleAutor rhinds | 2014-12-09
Schreibe einen Kommentar