


Comment intégrer SpringBoot dans un package war pour l'exécuter sous Tomcat ou Wildfly
La méthode d'empaquetage par défaut de Springboot est le package jar. L'avantage du package jar est que la configuration n'a pas besoin d'être modifiée et que Tomcat est intégré dans un package jar, il peut être directement lancé dans Docker pour être exécuté. essais. Cependant, étant donné que le code frontal ne peut être regroupé que dans un package war, il suffit de regrouper le code back-end dans un package war et de l'exécuter avec le code frontal dans les applications Web du conteneur Tomcat.
Formulaire de packaging SpringBoot
Par défaut, le projet SpringBoot créé est conditionné sous la forme d'un package jar. Dans le même temps, un conteneur Tomcat est intégré.
Donc, si vous souhaitez intégrer Springboot dans un package war et le déployer sur un conteneur tel que Wildfly, que devez-vous faire ?
Ce qui suit expliquera chaque étape à partir de la création d'un projet.
Créer un projet
Il n'y a aucune difficulté à créer un projet. Utilisez simplement l'outil idea pour créer un projet maven simple. Si votre projet est déjà un projet springboot et que vous souhaitez le modifier en un package war, il suffit de le modifier. modifiez-le.
Modifier la configuration pom.xml
Après avoir créé le projet, modifiez le fichier pom.xml et ajoutez la balise parent.
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.5.RELEASE</version> <relativePath/> </parent>
S'il s'agissait à l'origine d'un projet springboot, il est déjà inclus et pas besoin de le modifier.
Définissez la méthode d'emballage dans pom.xml sur war.
<packaging>war</packaging>
Ajoutez ou modifiez la configuration des dépendances comme suit :
<dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>servlet-api</artifactId> <version>2.5</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies>
Parmi eux, la dépendance tomcat doit être exclue dans spring-boot-starter-web. En même temps, ajoutez la dépendance de servlet-api. Notez que la dépendance ajoutée ici est Servlet2.5.
Utilisez les plug-ins suivants dans la construction pour l'empaquetage.
<build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin> </plugins> </build>
Démarrez la méthode principale
S'il existe déjà une méthode principale à démarrer, laissez la méthode principale hériter de SpringBootServletInitializer et implémenter sa méthode. S'il s'agit d'un projet nouvellement créé, créez SpringBootApp (classe de démarrage) directement dans le répertoire de niveau supérieur, puis démarrez diam comme suit.
@SpringBootApplication public class SpringBootApp extends SpringBootServletInitializer { public static void main(String[] args) { SpringApplication.run(SpringBootApp.class, args); } @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(SpringBootApp.class); } }
Packaging
Exécutez simplement le packaging du package via la commande maven, et le package war peut être généré dans le répertoire cible.
Quant au déploiement de tomcat et wildfly, vous pouvez placer le package war dans le répertoire correspondant et démarrer le service.
Exceptions
Si une exception similaire à la suivante se produit lors du démarrage (suggérant que web.xml est manquant) :
Erreur lors de l'assemblage de WAR : l'attribut webxml est requis (ou un WEB-INF/web.xml préexistant si exécution en mode mise à jour)
Faites attention à vérifier le plug-in d'empaquetage du fichier pom et si les problèmes de Tomcat ont été éliminés, et vérifiez si le plug-in d'empaquetage ci-dessus est correct.
La raison du problème est la suivante : le package de dépendances spring-boot-starter-web est référencé dans le projet springboot. Le spring-boot-starter-tomcat référencé dans ce package contient le conteneur de servlet intégré Tomcat et ses différentes versions implémentent différentes spécifications de version de servlet.
Servlet/JSP version 2.5/2.1 prend en charge la version 6.0.x de Tomcat et la version minimale de Java est 1.5. Servlet/JSP version 3.0/2.2 prend en charge Tomcat version 7.0.x et la version Java minimale est 1.6.
Étant donné que Servlet2.5 est utilisé ci-dessus, l'exception ci-dessus se produira lorsqu'il n'y a pas de fichier web.xml.
Solution 1 : Lorsque la version du Servlet est inférieure à 3, utilisez le fichier /src/main/webapp/WEB-INF/web.xml pour créer.
Solution 2 : Ajoutez le plugin maven-war-plugin sous la build de pom.xml. Et définissez failOnMissingWebXml sur false.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Pour déployer un projet JAR sur Tomcat, suivez ces étapes : Téléchargez et décompressez Tomcat. Configurez le fichier server.xml, définissez le port et le chemin de déploiement du projet. Copie le fichier JAR vers le chemin de déploiement spécifié. Démarrez Tomcat. Accédez au projet déployé à l'aide de l'URL fournie.

Pour permettre au serveur Tomcat d'accéder au réseau externe, vous devez : modifier le fichier de configuration Tomcat pour autoriser les connexions externes. Ajoutez une règle de pare-feu pour autoriser l'accès au port du serveur Tomcat. Créez un enregistrement DNS pointant le nom de domaine vers l'adresse IP publique du serveur Tomcat. Facultatif : utilisez un proxy inverse pour améliorer la sécurité et les performances. Facultatif : configurez HTTPS pour une sécurité accrue.

Répertoire d'installation de Tomcat : Chemin par défaut : Windows : C:\Program Files\Apache Software Foundation\Tomcat 9.0macOS:/Library/Tomcat/Tomcat 9.0Linux:/opt/tomcat/tomcat9 Chemin personnalisé : vous pouvez le spécifier lors de l'installation. Recherchez le répertoire d'installation : utilisez la commande Whereis ou Locate.

Pour déployer plusieurs projets via Tomcat, vous devez créer un répertoire webapp pour chaque projet puis : Déploiement automatique : Placez le répertoire webapp dans le répertoire webapps de Tomcat. Déploiement manuel : déployez manuellement le projet dans l'application de gestion de Tomcat. Une fois le projet déployé, il est accessible par son nom de déploiement, par exemple : http://localhost:8080/project1.

Comment vérifier le nombre de connexions Tomcat simultanées : Visitez la page Tomcat Manager (http://localhost:8080/manager/html) et entrez votre nom d'utilisateur et votre mot de passe. Cliquez sur Statut->Sessions dans la barre de navigation de gauche pour voir le nombre de connexions simultanées en haut de la page.

Le répertoire racine du site Web Tomcat se trouve dans le sous-répertoire webapps de Tomcat et est utilisé pour stocker les fichiers d'application Web, les ressources statiques et le répertoire WEB-INF. Il peut être trouvé en recherchant l'attribut docBase dans le fichier de configuration Tomcat.

Le numéro de port Tomcat peut être affiché en vérifiant l'attribut de port de l'élément <Connector> dans le fichier server.xml. Visitez l'interface de gestion Tomcat (http://localhost:8080/manager/html) et affichez l'onglet « Statut ». Exécutez "catalina.sh version" à partir de la ligne de commande et regardez la ligne "Port :".

Pour configurer Tomcat pour utiliser un nom de domaine, procédez comme suit : Créez une sauvegarde server.xml. Ouvrez server.xml et ajoutez l'élément Host, en remplaçant example.com par votre nom de domaine. Créez un certificat SSL pour le nom de domaine (si nécessaire). Ajoutez un connecteur SSL dans server.xml, modifiez le port, le fichier de clés et le mot de passe. Enregistrez le fichier serveur.xml. Redémarrez Tomcat.
