Spring Boot - Déployer le fichier WAR sur Tomcat
Dans cet article, nous vous montrerons comment créer un fichier WAR traditionnel Spring Boot et déployer sur un conteneur de servlet Tomcat.
Dans Spring Boot, pour créer un WAR pour le déploiement, nous avons besoin de 3 étapes:
-
Prolonge
SpringBootServletInitializer
-
Marqué le conteneur de servlet intégré comme fourni.
-
Mettre à jour l'emballage pour la guerre
Testé avec
-
Spring Boot 2.1.2.RELEASE
-
Tomcat 8 et 9
-
Maven 3
Note
Dans Spring Boot, le nouveau fichier JAR exécutable final avec solution serveur intégrée peut ne pas convenir à tous les environnements de production, en particulier à l'équipe de déploiement (une équipe ayant une bonne connaissance de l'optimisation des serveurs et des compétences de surveillance, mais manque de, l'expérience de développement), ils veulent un contrôle total du serveur, et ils ne touchent pas au code, nous avons donc besoin d'un fichier WAR traditionnel.
1. ProlongeSpringBootServletInitializer
Mettez à jour la classe@SpringBootApplication
pour étendreSpringBootServletInitializer
et remplacez la méthodeconfigure
.
1.1 Classic Spring Boot JAR deployment.
StartWebApplication.java
import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class StartWebApplication { public static void main(String[] args) throws Exception { SpringApplication.run(StartWebApplication.class, args); } }
1.2 For WAR deployment.
StartWebApplication.java
import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.web.servlet.support.SpringBootServletInitializer; @SpringBootApplication public class StartWebApplication extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(StartWebApplication.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(StartWebApplication.class); } } /*@SpringBootApplication public class StartWebApplication { public static void main(String[] args) throws Exception { SpringApplication.run(StartWebApplication.class, args); } }*/
Pour plusieurs classes principales, assurez-vous d'indiquer à Spring Boot quelle classe principale commencer:
pom.xml
com.example.SpringBootWebApplication
Lire ceci -Spring Boot – Which main class to start
2. Marqué le conteneur de servlet intégré comme fourni
pom.xml
org.springframework.boot spring-boot-starter-thymeleaf org.springframework.boot spring-boot-starter-tomcat provided
3. Mettre à jour l'emballage pour la guerre
pom.xml
war
Terminé, générez le projet et copiez le fichier WAR pour le déploiement.
Télécharger le code source
$ git clone https://github.com/example/spring-boot.git
$ cd web-thymeleaf-war
$ mvn package
$ copy web-thymeleaf-war/target/example.war $TOMCAT/webapps/
$ start Tomcat
$ localhost:8080/example