2 votes

Impossible de déployer automatiquement une guerre dans Tomcat

Cela fait 3 heures que j'essaie ce truc et rien. J'ai besoin de déposer un nouveau war et que tomcat le déploie automatiquement. Cela ne se produit pas. Voici ma configuration simplifiée :

server.xml

<Engine name="Catalina" defaultHost="localhost">
  <Host name="something.com" appBase="/var/www/something.com/webapps"
        unpackWARs="false" autoDeploy="true" 
        xmlValidation="false" xmlNamespaceAware="false">
    <Context path="" docBase="application.war" debug="0" reloadable="true">
      ... some realm and data source stuff here
    </Context>
  </Host>
</Engine>

Lorsque je démarre tomcat, tout fonctionne parfaitement. J'ai essayé deux approches :

  1. Copier une nouvelle guerre à l'aide de scp dans l'emplacement.
  2. Toucher /var/www/something.com/webapps/application.war .

Dans les deux cas, je vois catalina.err avec le même message :

INFO: Undeploying context [/application]

En l'absence d'une

INFO: Deploying web application archive application.war

que j'obtiens lorsque je redémarre tomcat. J'ai l'impression que c'est parce qu'il n'est pas à l'intérieur du fichier CATALINA_BASE/webapps mais ne savent pas comment procéder. Comment faire ?

0voto

Farrukh Waheed Points 101

J'ai rencontré ce problème sur le conteneur docker officiel de Tomcat. Avec

<Host name="localhost"  appBase="webapps"  unpackWARs="true" autoDeploy="true">

dans mon server.xml, chaque fois que j'ai copié le fichier *.war dans le dossier appBase, il a pu être détecté et affiché dans la page du Manager, mais il n'a pas pu être déployé. En cliquant sur le bouton Start, il a été déployé, mais ce n'est pas la cible. A partir des HowTos de Tomcat dans la documentation officielle, dans la section Déployer sur un serveur Tomcat en fonctionnement, j'ai eu et essayé l'idée de copier la forme éclatée de mon fichier war dans le dossier appBase et cela a fonctionné. Je n'arrive toujours pas à comprendre pourquoi il n'est pas possible d'exploser le fichier war dans autoDeploy et unpackWARs est vrai. Mais lui donner un fichier war décompressé (Exploded form) revient à aider le serveur tomcat à le déployer. Voici ma ligne de commande pour le copier dans le conteneur de docker :

docker cp " D:\MyMavenProject\target\MyProject -0.0.1-SNAPSHOT" tomcat_srvr:/usr/local/tomcat/webapps/MyProject-0.0.1-SNAPSHOT

tomcat_srvr est le nom de mon conteneur Docker Tomcat.

J'espère que cela aidera d'autres personnes ;

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X