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.
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.
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é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.
Sélectionnez ʻUpload Deployment depuis le bouton
(+) en haut à gauche du menu
Deployments`.
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.
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».
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.
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.
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