web-dev-qa-db-fra.com

Comment déployer un fichier war dans JBoss AS 7?

J'ai téléchargé JBoss Application Server 5 et déployé avec succès un fichier de guerre. J'ai copypasté le Hello.war qui a un simple fichier index.jsp dans

\jboss-5.1.0.GA-jdk6\jboss-5.1.0.GA\server\default\deploy

et cela a bien fonctionné.

Cependant, lorsque j'ai utilisé JBoss AS 7 et déployé le fichier de guerre ici, il n'a pas été exécuté.

jboss-as-7.0.0.Final\jboss-as-7.0.0.Final\standalone\deployments

Comment le déployer?

EDIT: Je l'ai googlé mais je n'ai pas pu trouver d'informations car JBoss AS 7 est relativement nouveau.

14
user244333

En fait, pour la dernière JBOSS 7 AS, nous avons besoin d'un .dodeploy marqueur même pour les archives. Ajoutez donc un marqueur pour déclencher le déploiement.

Dans mon cas, j'ai ajouté un Hello.war.deployed fichier dans le même répertoire, puis tout a bien fonctionné.

J'espère que cela aide quelqu'un!

21
user244333

Lisez le fichier $ AS/standalone/deployments/README.txt

  • vous avez deux modes différents: le mode de déploiement automatique et le mode de déploiement manuel
  • pour le mode de déploiement manuel, vous devez placer un fichier marqueur comme décrit dans les autres articles
  • pour le mode autodéploiement: cela se fait via les attributs "auto-deploy" sur l'élément de déploiement-scanner dans le fichier de configuration standalone.xml:

    <deployment-scanner scan-interval="5000" relative-to="jboss.server.base.dir"
    path="deployments" auto-deploy-zipped="true" **auto-deploy-exploded="true"**/>
    
16
influence160

J'ai construit la tâche ant suivante pour le déploiement basée sur les documents de déploiement jboss :

<target name="deploy" depends="jboss.environment, buildwar">
    <!-- Build path for deployed war-file -->
    <property name="deployed.war" value="${jboss.home}/${jboss.deploy.dir}/${war.filename}" />

    <!-- remove current deployed war -->
    <delete file="${deployed.war}.deployed" failonerror="false" />
    <waitfor maxwait="10" maxwaitunit="second">
        <available file="${deployed.war}.undeployed" />
    </waitfor>
    <delete dir="${deployed.war}" />

    <!-- copy war-file -->
    <copy file="${war.filename}" todir="${jboss.home}/${jboss.deploy.dir}" />

    <!-- start deployment -->
    <echo>start deployment ...</echo>
    <touch file="${deployed.war}.dodeploy" />

    <!-- wait for deployment to complete -->
    <waitfor maxwait="10" maxwaitunit="second">
        <available file="${deployed.war}.deployed" />
    </waitfor>
    <echo>deployment ok!</echo>
</target>

${jboss.deploy.dir} est réglé sur standalone/deployments

8
oleh

Pouvez-vous fournir plus d'informations sur l'échec du déploiement? L'échec du déploiement de l'application déclenche-t-il un fichier marqueur . War.failed ?

Le dossier de déploiement d'instance autonome est livré avec un déploiement automatique activé par défaut. Le mode de déploiement automatique automatise les mêmes fonctionnalités que vous utilisez avec le mode manuel, en utilisant une série de fichiers marqueurs pour indiquer à la fois l'action et l'état du déploiement au runtime. Par exemple, vous pouvez utiliser la commande "touch" unix/linux pour créer un fichier marqueur . War.dodeploy pour indiquer au runtime de déployer l'application.

Il peut être utile de savoir qu'il existe au total cinq méthodes de déploiement d'applications sur AS7. J'ai abordé ce sujet dans un autre sujet ici: fichiers JBoss AS7 * .dodeploy

J'ai tendance à utiliser la console de gestion pour la gestion des applications, mais je sais que la CLI de gestion est également très populaire parmi d'autres utilisations. Les deux sont distincts des processus de dossier de déploiement. Voyez comment vous allez avec les autres méthodes pour répondre à vos besoins.

Si vous recherchez "déployer" dans le Guide d'administration, vous pouvez voir une section sur le scanner de déploiement et une section de déploiement plus générale (y compris la CLI): https://docs.jboss.org/author/display/AS7/Admin + Guide

3
ddri

Copiez simplement le fichier war dans un dossier/deployments/autonome, il devrait le déployer automatiquement. Il créera également votre fichier_app_name.deployed, lorsque votre application sera déployée. Assurez-vous également que vous démarrez le serveur avec le script bin/standalone.sh.

1
balent