[JAVA] Déployer l'application sur WildFly

introduction

Dans l'article précédent (https://qiita.com/tama1/items/829be5aacd81637ae73a), j'ai écrit qu'il existe trois façons de déployer une application Web sur WildFly:

** 1. Placez dans le dossier des déploiements (répertoire) et déployez ** ** 2. Déployer à partir de l'écran de gestion ** ** 3. Déployer avec la CLI de gestion **

Cette fois, j'écrirai un peu plus sur ce domaine.

Déployer dans le répertoire des déploiements

Lorsque vous placez une application (fichier war) dans le répertoire deployments, un ** scanner de déploiement ** qui analyse le répertoire deployments à intervalles réguliers déploie l'application. Il existe deux types d'applications à analyser: ** format d'archive ** et ** format étendu **.

** 1. Format d'archive ** C'est une application WEB emballée avec zip. Fichiers dits de guerre et d'oreille. ** 2. Format de déploiement ** C'est une application WEB qui étend zip. Le répertoire extrait est nommé quelque chose comme "xxx.war".

Les paramètres du scanner de déploiement peuvent être trouvés ci-dessous dans standalone.xml.

<subsystem xmlns="urn:jboss:domain:deployment-scanner:2.0">
    <deployment-scanner path="deployments" relative-to="jboss.server.base.dir" scan-interval="5000" runtime-failure-causes-rollback="${jboss.deployment.scanner.rollback.on.failure:false}"/>
</subsystem>

Les éléments de configuration du scanneur de déploiement qui peuvent être définis à partir de l'écran de gestion sont les suivants.

nom de l'article La description Valeur par défaut
Auto Deploy Exploded Redéployer s'il y a une mise à jour dans l'application WEB déployée false
Auto Deploy Xml S'il faut redéployer si le fichier XML est mis à jour true
Auto Deploy Zipped S'il faut redéployer si l'application WEB archivée est mise à jour true
Deployment Timeout Une erreur se produit si le déploiement expire ou si le déploiement prend plus de 600 secondes. 600
Path nom du répertoire des déploiements deployments
Relative To Propriétés du système{jboss.server.base.dir}Chemin, par défaut "wildfly"-15.0.0.Final/Puisqu'il est "autonome", il est "wildfly" avec le paramètre "Path".-15.0.0.Final/standalone/Cela devient des «déploiements». jboss.server.base.dir
Runtime Failure Causes Rollback Est-il nécessaire pour une application particulière d'annuler tous les déploiements lorsqu'une erreur d'exécution se produit? ${jboss.deployment.scanner.rollback.on.failure:false}
Scan Enabled Activer ou non la numérisation true
Scan Interval Intervalle de scan 5000

En d'autres termes, dans l'état par défaut, il est dans l'état suivant.

  1. L'application WEB au format archive sera déployée lors de sa mise à jour.
  2. Lors de la mise à jour de l'application WEB au format de déploiement, il est nécessaire de mettre le fichier marqueur «xxx.war.dodeploy».

Fichier marqueur

Les fichiers marqueurs peuvent être créés par l'utilisateur pour diriger l'analyseur de déploiement ou par l'analyseur de déploiement pour indiquer l'état actuel. Placez-le dans le même répertoire que votre application (fichier war), wildfly-15.0.0.Final / standalone / deployments. S'il est créé par l'utilisateur, le contenu du fichier peut être vide.

** Fichier de marqueurs créé par l'utilisateur **

Nom sens
xxx.war.dodeploy xxx.Déployer la guerre
xxx.war.skipdeploy xxx.Ignorer le déploiement de la guerre
xxx.war.undeploy xxx.Annuler le déploiement de la guerre * PourquoiManuelNon écrit

** Fichier marqueur créé par le scanner de déploiement **

Nom sens
xxx.war.isdeploying xxx.la guerre est en cours de déploiement
xxx.war.deployed xxx.Le déploiement de la guerre est terminé
xxx.war.failed xxx.n'a pas réussi à déployer la guerre
xxx.war.isundeploying xxx.la guerre ne se déploie pas
xxx.war.undeployed xxx.Le non-déploiement de la guerre est terminé

Déployer depuis l'écran de gestion

Déployez l'application à l'aide de l'écran d'administration WildFly. L'écran de gestion est élaboré, et il semble qu'il soit censé être utilisé principalement (probablement). Que se passera-t-il si vous déployez à partir de l'écran de gestion

Je pense que vous pouvez facilement le faire en suivant les instructions à l'écran.

  1. Sélectionnez ʻUpload Deployment depuis le bouton (+) en haut à gauche du menu Deployments`.

  2. Faites glisser et déposez le fichier de guerre dans le cadre en pointillé, ou cliquez sur le lien «Choisir un fichier ou faites-le glisser ici» pour sélectionner et télécharger le fichier de guerre. Une fois le téléchargement terminé, appuyez sur «Suivant» pour continuer.

  3. Vérifiez le «Nom» et le «Nom d'exécution», et réglez le bouton «Activé» sur «OUI» si vous voulez l'activer immédiatement. Runtime Name est la racine du contexte. Après confirmation, appuyez sur le bouton «Terminer».

  4. Déploiement terminé

Jetons un œil au répertoire deployments, ça? Il n'y a rien. Lorsque vous ouvrez standalone.xml, les balises suivantes sont ajoutées en bas.

    <deployments>
        <deployment name="helloworld.war" runtime-name="helloworld.war">
            <content sha1="2be2e53cd283a40f626a947aa35bfbfb593893ec"/>
        </deployment>
    </deployments>

Quand j'ai cherché dans le répertoire wildfly-15.0.0.Final, j'ai trouvé un tel fichier.

wildfly-15.0.0.Final/standalone/data/content/2b/e2e53cd283a40f626a947aa35bfbfb593893ec/content

J'ai changé l'extension en .zip et l'ai comparée à la guerre que j'ai téléchargée plus tôt, et cela correspondait. Il a été téléchargé dans un tel endroit.

Supprimez l'application de l'écran d'administration avant de continuer.

Le wildfly-15.0.0.Final / standalone / data / content / 2b / e2e53cd283a40f626a947aa35bfbfb593893ec / content a disparu et la balise ajoutée à standalone.xml a disparu.

Déployer avec la CLI de gestion

wildfly-15.0.0.Final/bin/の下にある管理CLIであるjboss-cli.shを使用してアプリケーションをデプロイします。Windowsの場合はjboss-cli.batを使います。

Connectez-vous à WildFly avec jboss-cli.sh --connect et exécutez la commande deploy [write war location with full path].

#wildfly-15.0.0.Final/bin/jboss-cli.sh --connect
[standalone@localhost:9990 /] deploy /yourpath/helloworld.war

Le déploiement est maintenant terminé.

Lorsque vous ouvrez standalone.xml, les balises suivantes sont ajoutées en bas.

<deployments>
    <deployment name="helloworld.war" runtime-name="helloworld.war">
        <content sha1="2be2e53cd283a40f626a947aa35bfbfb593893ec"/>
    </deployment>
</deployments>

Un fichier content est également créé.

wildfly-15.0.0.Final/standalone/data/content/2b/e2e53cd283a40f626a947aa35bfbfb593893ec/content

Il semble se comporter de la même manière que lors du déploiement à partir de l'écran de gestion. Par conséquent, je pense que vous devriez utiliser celui que vous voulez.

Quelle est la meilleure façon de déployer après tout?

La documentation indique que le système du produit doit utiliser l'API de gestion au lieu du scanner de déploiement.

L'idée semble être qu'il est censé utiliser le déploiement avec un scanner de déploiement pendant le développement et utiliser l'écran de gestion ou la CLI de gestion après la sortie de production.

8.2.2. Deploying Using the Deployment Scanner

Users are encouraged to use the WildFly management APIs to upload and deploy deployment content instead of relying on the deployment scanner that periodically scans the directory, particularly if running production systems.

Recommended Posts

Déployer l'application sur WildFly
Déployer l'application SpringBoot sur AWS EC2
Déployez votre application sur EDAS à l'aide du plugin Cloud Toolkit Maven
Déployez l'application avec VPC + EC2 + Docker.
Étapes de déploiement sur Heroku
Étapes de déploiement de Struts 2.5.8
Déployer automatiquement sur WildFly avec Jenkins lorsque SVN s'engage
Guide: déployez votre application à l'aide du plugin Alibaba Cloud Toolkit
Introduction au développement d'applications Android
Comment déployer avec heroku
[Java] Déployer l'application Spring Boot sur Azure App Service
Déployez l'application créée par Spring Boot sur Heroku (public) ②
Comment déployer jQuery dans les applications Rails à l'aide de Webpacker
Déployez l'application créée par Spring Boot sur Heroku (public) ①
Réécriture de l'applet à l'application
Comment déployer une application Java sur Alibaba Cloud EDAS dans Eclipse
Java: démarrez WAS avec Docker et déployez votre propre application
Comment déployer l'application Rails sur AWS (résumé de l'article)
Essayez d'introduire OpenCV dans l'application Android
Comment déployer Laravel sur CentOS 7
Préparation à la création de l'application Rails
Présentation du calendrier complet à l'application Rails
Comment déployer Bootstrap sur Rails
Raccourcis pour rationaliser le travail d'Eclipse
Comment installer WildFly sur Ubuntu 18.04
Déployer des rails sur Docker vers heroku
Un moyen facile de créer votre propre logo d'application (facile avec votre smartphone)
WAR l'application WEB par Spring Boot et la déployer sur le serveur Tomcat
Déployer une application Node.js sur une instance ECS à l'aide du Cloud Toolkit