Comment définir le chemin de contexte d’une application Web dans Tomcat 7.0

Je sais que je peux renommer mon webapp (ou son fichier WAR) en ROOT, mais c’est une façon terrible de le faire, à mon humble avis. Maintenant, j’ai vérifié le doc Tomcat et il dit

Il n’est pas recommandé de placer des éléments directement dans le fichier server.xml

J’ai donc essayé de le faire avec une autre méthode suggérée.

Les éléments de contexte individuels peuvent être explicitement définis: Dans un fichier individuel situé dans /META-INF/context.xml à l’intérieur des fichiers d’application.

J’ai donc créé un /META-INF/context.xml avec le code suivant,

   

Mais après le déploiement lorsque j’ai redémarré le serveur, il n’a toujours pas réussi à charger le contexte dans “/”, il l’a toujours chargé avec le "/"

Tout pointeur utile.

Ce que vous pouvez faire est le suivant:

Ajoutez un fichier appelé ROOT.xml dans /conf/Catalina/localhost/ ROOT.xml /conf/Catalina/localhost/

Ce ROOT.xml remplacera les parameters par défaut du contexte racine de l’installation tomcat pour ce moteur et cet hôte (Catalina et localhost).

Entrez les informations suivantes dans le fichier ROOT.xml;

  

Ici, est le nom de votre application .. 🙂

Et voilà, votre application est maintenant l’application par défaut et apparaîtra sur http://localhost:8080

Cependant, il y a un effet secondaire; votre application sera chargée deux fois. Une fois pour localhost:8080 et une fois pour localhost:8080/yourApp . Pour résoudre ce problème, vous pouvez mettre votre application OUTSIDE /webapps et utiliser un chemin relatif ou absolu dans la balise docBase de ROOT.xml. Quelque chose comme ça;

  

Et puis tout devrait bien se passer!

Voici les seules solutions qui ont fonctionné pour moi. Ajoutez ceci au noeud Host dans le fichier conf / server.xml

   WEB-INF/web.xml  

aller au fichier Tomcat server.xml et définir le chemin vide

Ce petit code a fonctionné pour moi, en utilisant des hôtes virtuels

    

Dans Tomcat 9.0, je n’ai qu’à modifier les éléments suivants dans le server.xml

  

à

  

Plus rapide et peut-être la meilleure solution est d’avoir le contenu ci-dessous dans /conf/Catalina/localhost/ROOT.xml

  

Et votre webapp sera disponible sur http://:/

J’ai rencontré ce problème pendant un mois, la mise en place de la balise de contexte dans server.xml n’affecte pas le déploiement des éléments de contexte pour tous les autres hôtes. .com / domain1Folder !! également les connexions de session de firebase database chargées deux fois! dans l’autre sens est placé le fichier ROOT.xml qui a une balise de contexte avec un chemin complet tel que:

   

dans conf / catalina / webappsfoldername et déployer le fichier de guerre sous la forme ROOT.war dans le nom de fichier webappsfoldername et également spécifier un tel hôte

     

Dans cette approche, même pour les applications de même type, les sessions utilisateur ne sont pas bien isolées! vous pouvez dans app1 si app1 même que app2 vous pouvez vous connecter automatiquement à app2 après la connexion par la session côté serveur?! Donc, vous devez garder la session des utilisateurs dans le cache côté client et non avec jsessionid! nous pouvons changer le nom du moteur de localhost pour le résoudre. mais laissez jouer avec Tomcat a besoin de plus de temps que de jouer avec d’autres chats!

aller au fichier Tomcat server.xml et définir le chemin vide

Tomcat 8: Après de nombreuses recherches, il ne s’agit que du code de travail: dans server.xml

     WEB-INF/web.xml   

Redémarrez Tomcat, assurez-vous que lorsque vous accédez à 127.0.0.1:8080, il affichera le contenu dans 127.0.0.1:8080/apple

Mon projet était l’application web Java créée par netbeans, je définissais le chemin du contexte dans la configuration du projet, rien d’autre, même si je mettais apple.war dans le dossier webapps.

Il n’est pas recommandé de mettre à jour la configuration du serveur comme server.xml ou ROOT.xml.

Vous pouvez placer un fichier de configuration context.xml sous le répertoire META-INF de votre application Web, avec le paramètre de chemin de contexte inclus. Cela va remplacer le paramètre du serveur par défaut?

c’est à dire:

  

Pour moi, les deux réponses ont fonctionné.

  1. Ajouter un fichier nommé ROOT.xml dans / conf / Catalina / localhost /
  
  1. Ajout d’une entrée dans server.xml
      WEB-INF/web.xml     

Remarque: lorsque vous déclarez docBase en contexte, ignorez appBase sur Host.

  1. Cependant, j’ai préféré convertir mon nom de guerre en ROOT.war et le placer sous Webapps. Donc, maintenant, les demandes d’URL inégalées provenant d’autres guerres (contextpaths) arriveront dans cette guerre. C’est mieux pour gérer le chemin de contexte ROOT (“/ **”).

La deuxième option consiste à (double) charger également les guerres du dossier Webapps. En outre, il n’a besoin que d’un dossier de guerre non compressé, ce qui constitue un casse-tête.

Le truc ci-dessous a fonctionné pour moi.

1) Commentez / supprimez la configuration ci-dessous du fichier server.xml (dans le dossier conf) de tomcat.

2) Supprimez le dossier ROOT existant (le cas échéant) résidant dans le dossier webcat tomcat. Et renommez votre fichier war (eg: test.war) en ROOT.war.

Rappelez-vous qu’en renommant le fichier de guerre en ROOT.war, “ROOT” devrait être en majuscules.

Limitation: vous ne pouvez déployer qu’une seule application dans une seule instance de tomcat.