Maison Java javaDidacticiel Comment intégrer SpringBoot dans un package war pour l'exécuter sous Tomcat ou Wildfly

Comment intégrer SpringBoot dans un package war pour l'exécuter sous Tomcat ou Wildfly

May 10, 2023 pm 05:04 PM
tomcat springboot war

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>
Copier après la connexion

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>
Copier après la connexion

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>
Copier après la connexion

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);
 }
}
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment déployer un projet jar dans Tomcat Comment déployer un projet jar dans Tomcat Apr 21, 2024 am 07:27 AM

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.

Comment autoriser l'accès au réseau externe au serveur Tomcat Comment autoriser l'accès au réseau externe au serveur Tomcat Apr 21, 2024 am 07:22 AM

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.

Où se trouve le répertoire d'installation de Tomcat ? Où se trouve le répertoire d'installation de Tomcat ? Apr 21, 2024 am 07:48 AM

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.

Comment déployer plusieurs projets dans Tomcat Comment déployer plusieurs projets dans Tomcat Apr 21, 2024 am 09:33 AM

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 simultanées dans Tomcat Comment vérifier le nombre de connexions simultanées dans Tomcat Apr 21, 2024 am 08:12 AM

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.

Où se trouve le répertoire racine du site Web Tomcat ? Où se trouve le répertoire racine du site Web Tomcat ? Apr 21, 2024 am 09:27 AM

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.

Comment vérifier le numéro de port de Tomcat Comment vérifier le numéro de port de Tomcat Apr 21, 2024 am 08:00 AM

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 :".

Comment configurer le nom de domaine dans Tomcat Comment configurer le nom de domaine dans Tomcat Apr 21, 2024 am 09:52 AM

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.

See all articles