2017-03-02 2 views
1

Ich versuche derzeit, mein vorhandenes dynamisches Webprojekt in das Spring-Boot-Projekt zu verschieben und es verwendet web.xml für das Servlet-Mapping. Ich verstehe, dass Frühling die Datei web.xml ignorieren würde, was sollte der richtige Ansatz für Frühling sein, die vorhandene web.xml zu verwenden? Und ja, ich muss weiterhin web.xml für dieses Projekt verwenden.Force Spring Boot zur Verwendung der Servlet-Zuordnung in web.xml

Ich bin ein bisschen neu, bitte führen Sie mich durch! Vielen Dank!

Antwort

1

Ich nehme an, dass Sie mit einer web.xml bleiben müssen, da Ihr Container eine ältere Version von Servlet als 3.0 verwendet.

Spring Boot ist auf Servlet 3.0 gebaut. Sie müssen Ihre Hauptklasse aktualisieren, um SpringBootServletInitializer zu erweitern und die configure-Methode zu überschreiben, die spring veranlasst, die Servlet 3.0-Unterstützung zu verwenden. Eingebettete Container wie Tomcat benötigen Servlet 3.0. Wenn Sie also Ihr Projekt während des Entwicklungsprozesses (einschließlich JUnit-Tests) in eingebetteten Containern starten wollen, besteht meiner Meinung nach die einzige Möglichkeit darin, Ihre web.xml in Servlet 3.0 umzuschreiben Java-Konfiguration Aber wenn Sie Ihre App wirklich in einem älteren Container bereitstellen möchten, können Sie das Modul spring-boot-legacy verwenden. Sie können web.xml für ältere Container verwenden. Sie müssen lediglich org.springframework.boot.legacy.context.web.SpringBootContextLoaderListener in Ihrer web.xml hinzufügen.

Weitere Informationen zum Bereitstellen von War in einem alten Container finden Sie unter Spring Boot official documentation.

Frühlings-Boot verwendet Servlet 3.0-APIs die ServletContext (Register Servlets etc.) zu initialisieren, so dass Sie nicht die gleiche Anwendung verwenden aus die Box in einem Servlet 2.5-Container. Es ist jedoch möglich, eine Spring-Boot-Anwendung auf einem älteren Container mit einigen speziellen Tools auszuführen. Wenn Sie org.springframework.boot: spring-boot-legacy als -Abhängigkeit (separat zum Kern von Spring Boot und derzeit verfügbar bei 1.0.2.RELEASE) enthalten, alles, was Sie tun müssen, ist erstellen Sie eine web.xml und deklarieren Sie einen Context-Listener, um den Anwendungskontext und Ihre Filter und Servlets zu erstellen.

+0

Danke für die Eingabe !. Im Moment verwende ich Servlet 3.0 und Tomcat 7.0.75. Der Grund, warum ich bei web.xml bleibe, ist, dass es eine Menge Servlet-Mapping gibt und ich es nur in das Spring-Boot-Projekt umwandeln möchte. Ich habe Pläne, die aktuelle web.xml durch die richtige zu ersetzen (Servletcontainerinitializer)? – NatureWonder

Verwandte Themen