web-dev-qa-db-fra.com

Annulation du déploiement d'applications sur JBoss Application Server à partir de la ligne de commande

Existe-t-il des moyens simples de voir quelles guerres ont été déployées dans Jboss AS et d'en annuler le déploiement? Je veux le faire depuis la ligne de commande.

J'ai essayé d'utiliser jmx mais je continue à avoir une exception disant "org.jboss.util.NestedRuntimeException: jmx not bound;" Je préférerais le faire de manière à ne pas devoir arrêter et démarrer le serveur d'applications.

18
Joe

Vous pouvez aborder cela de trois manières différentes dans JBoss Application Server 7 :

  • Console de gestion
  • CLI de gestion
  • Dossier de déploiement

Console de gestion

En tant qu'interface graphique, la console de gestion est la plus visuelle des trois. Vous pouvez voir la liste des applications déployées dans la fenêtre Déploiement. Vous avez la possibilité de désactiver et de supprimer les applications déployées répertoriées ici. Cette capture d'écran provient de AS7.0.2, et certaines fenêtres ont changé et seront modifiées avec l'ajout d'onglets, mais la fonctionnalité générale reste la même. 

Imgur

CLI de gestion

L'interface de ligne de commande de gestion est un nouvel ajout à AS7. La CLI expose de nombreuses fonctionnalités de bas niveau et constitue un outil puissant une fois familiarisé avec les commandes et les opérations. Comme vous pouvez vous en douter, vous pouvez exécuter help pour afficher les commandes ou exécuter <commandname> --help pour plus d'informations sur une commande spécifique. deploy et undeploy sont deux commandes utiles. Nous allons donc examiner leurs informations d'aide. Je donnerai des exemples Linux, mais vous pouvez insérer votre modèle de système d’exploitation si nécessaire. 

Voici deploy:

[standalone@localhost:9999 /] deploy --help
SYNOPSIS

    deploy (file_path [--name=deployment_name] [--runtime_name=deployment_runtime_name] [--force] | --name=deployment_name) [--server-groups=group_name (,group_name)* | --all-server-groups]

DESCRIPTION

    Deploys the application designated by the file_path or enables an already existing
    but disabled in the repository deployment designated by the name argument.
    If executed w/o arguments, will list all the existing deployments.

ARGUMENTS

 file_path           - the path to the application to deploy. Required in case the deployment
                       doesn't exist in the repository.
                       The path can be either absolute or relative to the current directory.

 --name              - the unique name of the deployment. If the file path argument is specified
                       the name argument is optional with the file name been the default value.
                       If the file path argument isn't specified then the command is supposed to
                       enable an already existing but disabled deployment, and in this case the
                       name argument is required.

 --runtime_name      - optional, the runtime name for the deployment.

 --force             - if the deployment with the specified name already exists, by default,
                       deploy will be aborted and the corresponding message will printed.
                       Switch --force (or -f) will force the replacement of the existing deployment
                       with the one specified in the command arguments.

 --server-groups     - comma separated list of server group names the deploy command should apply to.
                       Either server-groups or all-server-groups is required in the domain mode.
                       This argument is not applicable in the standalone mode.

 --all-server-groups - indicates that deploy should apply to all the available server groups.
                       Either server-groups or all-server-groups is required in domain mode.
                       This argument is not applicable in the standalone mode.

 -l                  - in case none of the required arguments is specified the command will
                       print all of the existing deployments in the repository. The presence of the -l switch
                       will make the existing deployments printed one deployment per line, instead of
                       in columns (the default).

Et voici undeploy:

[standalone@localhost:9999 /] undeploy --help
SYNOPSIS

    undeploy name [--server-groups=group_name (,group_name)* | --all-relevant-server-groups] [--keep-content]

DESCRIPTION

    Undeploys the deployment with the given name and, depending on the arguments, removes
    its content from the repository.
    If the deployment name isn't specified, prints the list of all the existing deployments.

ARGUMENTS

 name                   - the name of the deployment to undeploy.

 --server-groups        - comma separated list of server group names the undeploy command should apply to.
                          Either server-groups or all-relevant-server-groups is required in the domain mode.
                          This argument is not applicable in the standalone mode.

 --all-relevant-server-groups   - indicates that undeploy should apply to all the server groups
                                  in which the deployment is enabled.
                                  Either server-groups or all-relevant-server-groups is required in domain mode.
                                  This argument is not applicable in the standalone mode.

 --keep-content         - by default undeploy, besides disabling the deployment, also removes its
                          content from the repository. The presence of --keep-content will only disable
                          the deployment w/o removing its content from the repository.
                          This argument can be used in both standalone and domain modes.

 -l                     - in case the deployment name isn't specified, the presence of the -l switch
                          will make the existing deployments printed one deployment per line, instead of
                          in columns (the default).

La CLI en action

L'exécution de la commande deploy ou undeploy sans aucun argument listera toutes les applications disponibles. Ainsi, votre flux de travail pour vous connecter à la CLI et annuler le déploiement d'une application ressemblerait à ceci (simplifié):

Remplacez le répertoire de EAP_HOME par le dossier bin:

[user@home EAP_HOME]$ cd bin

Exécutez le script de connexion CLI:

[user@Host bin]$ ./jboss-admin.sh
You are disconnected at the moment. Type 'connect' to connect to the server or 'help' for the list of supported commands.

Indiquez à l'API de se connecter (ceci peut également être transmis lors de l'exécution sous la forme ./jboss-admin.sh --connect).

[disconnected /] connect
Connected to standalone controller at localhost:9999

Exécutez la commande undeploy pour afficher les applications disponibles. 

[standalone@localhost:9999 /] undeploy
test.ear

Exécutez la commande undeploy pour annuler le déploiement de l'application. Dans ce cas, le test.ear. 

[standalone@localhost:9999 /] undeploy test.ear
Successfully undeployed test.ear.

Dossier de déploiement

Si vous exécutez une instance d'AS7 en tant qu'outil de développement et utilisez le dossier de déploiement, vous pouvez simplement supprimer l'application. Vous remarquerez qu'un fichier de marqueur est créé, tel que test.ear.failed, pour indiquer le statut du déploiement de l'application. 

30
ddri

Avec JBoss Application Server, il est possible de gérer le déploiement avec des opérations de fichier brut sur wars/oreilles dans deploy dir.

Juste ls pour énumérer, delete pour annuler le déploiement, copy pour déployer et touch pour redéployer. Aucun redémarrage du serveur requis.

Également pour la dernière version de JBoss Application Server 7, vous pouvez utiliser CLI .

3
Vadzim

Vous pouvez également essayer l'interface graphique de la CLI. L'option de menu Deployments -> Undeploy fournit une liste de choix des déploiements. Quelques clics et vous avez terminé.

Voir https://community.jboss.org/wiki/AGUIForTheCommandLineInterface

2
Stan Silvert

Vous n'êtes pas obligé de redémarrer le serveur JBOSS si vous supprimez le WAR et l'EAR, l'application n'est pas déployée.

L'article ( http://docs.jboss.org/jbossas/docs/Clustering_Guide/4/html/clustering-intro-farm.html ) fournit une explication parfaite de son fonctionnement.

Faites-le savoir si vous avez des questions à ce sujet.

Nous avons développé le développement sur Jboss de la même manière dans nos environnements DEV, QA et Prod et nous n’avons rencontré aucun problème jusqu’à présent.

0
user811591