Ich habe versucht, einen Weg zu finden, um die Standard-Begrüßungsseite für eine Spring-Boot-Anwendung zu ändern, die als Krieg in der Produktion eingesetzt wird, aber ich kann Ich finde einen Weg, es ohne eine web.xml-Datei zu tun.Ändern der Standard-Begrüßungsseite für Spring-Boot-Anwendung im Einsatz
Gemäß der Dokumentation können wir es tun, um die EmbeddedServletContainerFactory mit diesem Code verwendet:
@Bean
public EmbeddedServletContainerFactory servletContainer() {
TomcatEmbeddedServletContainerFactory factory = new TomcatEmbeddedServletContainerFactory();
TomcatContextCustomizer contextCustomizer = new TomcatContextCustomizer() {
@Override
public void customize(Context context) {
context.addWelcomeFile("/<new welcome file>");
}
};
factory.addContextCustomizers(contextCustomizer);
return factory;
}
Obwohl, wie wir eine Krieg-Datei erstellen und es zu tomcat und nicht über den integrierten Tomcat bereitstellen, diese isn tu alles.
Irgendeine Idee? Wenn wir wirklich eine web.xml-Datei hinzufügen müssen, wie können wir das tun und trotzdem Spring-Boot verwenden? Sollten wir die Application-Bean (mit der Hauptmethode) als Anwendungskontext für DispatcherServlet angeben? Die Dokumentation ist nicht sehr klar darüber.
Ältere Servlet-Container unterstützen den ServletContextInitializer-Bootstrap-Prozess, der in Servlet 3.0 verwendet wird, nicht. Sie können Spring und Spring Boot weiterhin in diesen Containern verwenden, aber Sie müssen Ihrer Anwendung eine web.xml hinzufügen und sie so konfigurieren, dass sie einen ApplicationContext über ein DispatcherServlet lädt.
Vielen Dank im Voraus!
Pedro
Die Tatsache, dass Sie eine web.xml haben, bedeutet nicht, dass der ServletContainerInitializer nicht mehr funktioniert. Legen Sie einfach eine web.xml in die Datei mit nur einem Begrüßungsseiten-Tag. –