Déploiement de mon application à la racine dans Tomcat

J’ai le fichier de guerre de mon application. Je dois le déployer au niveau racine. L’URL actuelle est http://localhost:8080/war_name/application_name .

Vous avez plusieurs options:

  1. Supprimez le répertoire ROOT/ out-of-the-box de tomcat et renommez votre fichier war en ROOT.war avant de le déployer.

  2. Déployez votre guerre en tant que (à partir de votre exemple) war_name.war et configurez la racine de contexte dans conf/server.xml pour utiliser votre fichier war:

      

Le premier est plus facile, mais un peu plus compliqué. Le second est probablement la manière la plus élégante de le faire.

sur tomcat v.7 (installation vanilla)

dans votre conf / server.xml, ajoutez le bit suivant vers la fin du fichier, juste avant la fermeture :

   WEB-INF/web.xml  

Notez cet atsortingbut docBase . C’est le bit important. Vous devez vous assurer que vous avez déployé app_name avant de modifier votre application Web racine ou simplement copier votre application Web décompressée (nom_app) dans le dossier webapps de votre tomcat. Startup, visitez root, voyez votre app_name là!

Avec tomcat 7 avec ces modifications, je peux accéder à myAPP à / et ROOT à / ROOT

   WEB-INF/web.xml    WEB-INF/web.xml  

Ajoutez ci-dessus à la section dans server.xml

Je sais que ma réponse est une sorte de chevauchement avec une autre réponse, mais il s’agit d’une solution complète qui présente certains avantages. Cela fonctionne sur Tomcat 8:

  1. L’application principale est servie depuis la racine
  2. Le déploiement des fichiers de guerre via l’interface Web est maintenu.
  3. L’application principale s’exécutera sur le port 80 alors que seuls les administrateurs ont access aux dossiers de gestion (je me rends compte que les systèmes * nix requièrent un superutilisateur pour la liaison à 80, mais ce n’est pas un problème sur Windows).

Cela signifie que vous n’avez qu’à redémarrer le tomcat une fois, et après que les fichiers de guerre mis à jour peuvent être déployés sans problème.

Étape 1: Dans le fichier server.xml, recherchez l’entrée du connecteur et remplacez-la par:

   

Étape 2: Définissez les contextes dans la :

  WEB-INF/web.xml   WEB-INF/web.xml   WEB-INF/web.xml   WEB-INF/web.xml  

Notez que j’ai adressé toutes les applications dans le dossier webapp. La première bascule efficacement la racine et l’application principale de la position. ROOT est maintenant sur http://example.com/ROOT et l’application principale est sur http://example.com/ . Les applications Web protégées par mot de passe requièrent l’atsortingbut privileged="true" .

Lorsque vous déployez un fichier CAS.war qui correspond à la racine ( vous devez le recharger dans le panneau d’administration car il ne s’actualise pas avec le déploiement.

N’incluez pas le dans vos contextes car cela désactive l’option du gestionnaire pour déployer les fichiers de guerre. Cela signifie que vous pouvez accéder à l’application de deux manières: http://example.com/ et http://example.com/APP/

Étape 3: Pour empêcher tout access indésirable au dossier racine et au gestionnaire, ajoutez une valve à ces balises de contexte comme ceci:

  WEB-INF/web.xml   

Cela limite essentiellement l’access au dossier de l’application Web d’administration aux utilisateurs de mon propre domaine (fausse adresse IP) et localhost lorsqu’ils utilisent le port 8080 par défaut et conserve la possibilité de déployer dynamicment les fichiers de guerre via l’interface Web.

Si vous souhaitez l’utiliser pour plusieurs applications utilisant des adresses IP différentes, vous pouvez append l’adresse IP au connecteur ( address="143.21.2.1" ).

Si vous souhaitez exécuter plusieurs applications Web à partir de la racine, vous pouvez dupliquer le tag Service (utilisez un nom différent pour le second) et changer la docbase du par exemple .

Supprimez $CATALINA_HOME/webapps/ROOT . Mettez $CATALINA_HOME/conf/server.xml jour $CATALINA_HOME/conf/server.xml , assurez-vous que l’élément Host ressemble au texte suivant:

   

Il fonctionne avec Tomcat 8. autoDeploy et deployOnStartup doivent être définis sur false pour empêcher Tomcat de déployer myApp deux fois.

Le moyen le plus rapide

  1. Assurez-vous que l’application ROOT n’est pas déployée, si vous en avez un

  2. Renommez votre guerre en ROOT.war, déployez, c’est tout, aucune modification de configuration n’est nécessaire

S’ajoutant au sol de @Rob Hruska, ce paramètre dans server.xml dans la section fonctionne:

   

Remarque: override = “true” peut être requirejs dans certains cas.

Sur mon serveur, j’utilise ceci et root autodeploy fonctionne très bien:

   www.mysite.com