Spring Boot - Déployer le fichier WAR sur Tomcat

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:

  1. ProlongeSpringBootServletInitializer

  2. Marqué le conteneur de servlet intégré comme fourni.

  3. 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
  

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