Comment définir le chemin de contexte d'une application web Tomcat 7.0
Je sais que je peux renommer ma webapp (ou c'est la GUERRE de fichier) pour RACINE mais c'est un terrible moyen de le faire, à mon humble avis. Maintenant, j'ai vérifié le tomcat doc & il dit
Il n'est PAS recommandé de placer des éléments dans l'
serveur.fichier xml
J'ai donc essayé de le faire d'une autre méthode qu'il suggère.
Contexte individuel éléments peuvent être définis de manière explicite: Dans un
individuelle fichier /META-INF/context.xml à l'intérieur des fichiers de l'application.
J'ai donc créé un /META-INF/context.xml
avec le code suivant,
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>
Mais après le déploiement de quand j'ai redémarré le serveur, il ne parvenait toujours pas à charger le contexte à "/", il reste chargé avec le "/<WEB_APP_NAME>"
Tous les pointeurs utiles.
- J'ai jamais de bug pour Tomcat 8 AVERTISSEMENT: UN chemin de contexte doit être soit une chaîne vide ou commencer par " / "et ne se termine pas par un"/". Le chemin "/" ne répondent pas à ces critères et a été changé en ""
- La raison "Il n'est PAS recommandé de placer des éléments dans l'server.xml fichier" de la doc suit dans la phrase suivante: "c'est parce qu'il fait de la modification de la configuration des contextes plus invasive puisque le principal conf/server.xml le fichier ne peut pas être rechargé sans redémarrage de Tomcat." La accepté de répondre directement ci-dessous résout le problème, mais si vous n'êtes pas susceptible de modifier ce chemin d'accès nouveau ou redémarre ne sont pas trop gênant, la modification de l'server.xml ne semble pas du tout déraisonnable.
Vous devez vous connecter pour publier un commentaire.
Ce que vous pouvez faire est la suivante;
Ajouter un fichier appelé
ROOT.xml
dans<catalina_home>/conf/Catalina/localhost/
Ce ROOT.xml remplace les paramètres par défaut pour le contexte de la racine de l'installation de tomcat pour le moteur et l'hôte (Catalina et localhost).
Entrez les informations suivantes pour la ROOT.xml fichier;
Ici,
<yourApp>
est le nom de votre application.. 🙂Et là vous allez, votre application est l'application par défaut et apparaîtra sur
http://localhost:8080
Cependant, il y a un effet de bord; votre demande sera chargé à deux reprises. Une fois pour
localhost:8080
et une fois pourlocalhost:8080/yourApp
. Pour y remédier, vous pouvez mettre votre application en DEHORS de la<catalina_home>/webapps
et utiliser un chemin relatif ou absolu dans l'ROOT.xml's docBase tag. Quelque chose comme ceci;Et puis il doit être OK!
path
attribut est illégal dans uncontext.xml
fichier.path=""
où puis-je trouver le projet de déploiement? car il n'est paswebapps/ROOT
sous-répertoire de tomcat?<catalina_home>
devrait être<catalina_base>
<catalina_base>
pas<catalina_home>
.<catalina_home>
ou<catalina_base>
est en fonction de votre installation. Si vous téléchargez à partir tomcat.apache.org et seulement l'intention d'exécuter une instance de Tomcat par serveur, vous aurez seulement besoin d'<catalina_home>
.ROOT.xml
dans$CATALINA_HOME/conf/Catalina/localhost
et définirdocBase
àFoobar
, mais vahttp://example.com:8080
montre encore Tomcat page d'accueil au lieu de mon application (en supposant queexample.com
est mon domaine etFoobar
est le nom de ma webapp). J'ai même essayé de mettre ledocBase
à/opt/tomcat/webapps/Foobar
, mais toujours pas de travail. Bien sûr, je redémarrez Tomcat, après avoir fait des changements, mais pas de travail. Toutes les suggestions?Voici la seule solutions qui ont travaillé pour moi. Ajoutez à cela le nœud d'Hôte dans le conf/server.xml
server.xml
oucontext.xml
? je vois une balise xml<Context>
dans moncontext.xml
Dans Tomcat 9.0, je n'ai qu'à modifier les éléments suivants dans la
server.xml
à
Ce petit code a fonctionné pour moi, l'utilisation des hôtes virtuels
server.xml
? Selon p. ex. Ali.Mojtehedy au-dessus de cette problématique. Aussi, d'autres réponses de l'état qui/path/to
doit être hors de la normale webapps chemin.Plus rapide et peut-être la meilleure solution est d'avoir le contenu ci-dessous dans
<TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml
Et votre webapp sera disponible à
http://<host>:<port>/
Foobar
dans/opt/tomcat/webapps/Foobar
. J'ai essayé de réglage docBase àFoobar
et aussi/opt/tomcat/webapps/Foobar
, mais quand je vais " http://<accueil>:<port>/ je vois encore Tomcat page d'accueil à la place de mon Foobar app. J'ai même redémarré le serveur Tomcat. Ce que je fais mal?J'ai été confronté à ce problème depuis un mois,Mettant contexte balise à l'intérieur de server.xml n'est pas sûr qu'il affecte contexte des éléments de déploiement pour tous les autres hôte ,pour les grands apps-il des erreurs de connexion également pas une bonne isolation par exemple, vous pouvez accéder à d'autres sites par nom de dossier domain2.com/domain1Folder !! une base de données connexions de session chargé à deux reprises !
l'autre façon est de mettre ROOT.xml fichier qui a le contexte de la balise avec le chemin d'accès complet tel :
dans conf/catalina/webappsfoldername
et de déployer la guerre de fichier en tant que ROOT.la guerre à l'intérieur de webappsfoldername
et aussi spécifier l'hôte
ces
Dans cette approche également pour le même type d'applications sessions utilisateur n'a pas une bonne isolation !
vous pouvez à l'intérieur de app1 si app1 même que app2 vous pouvez après la connexion par le serveur de session côté automatiquement pouvez vous connecter à app2 ?!
Donc, vous devez garder les utilisateurs de la session en cache côté client et non pas avec jsessionid !
nous pouvons modifier nom du moteur à partir de localhost pour le résoudre.
mais disons que jouer avec tomcat besoin de plus de temps que de jouer avec les autres chats!
Il n'est pas recommandé de mettre à jour la configuration du serveur comme server.xml ou ROOT.xml.
Vous pouvez mettre un context.xml fichier de configuration sous votre web-application répertoire META-INF, avec le chemin de contexte de réglage. Cela va remplacer le paramètre de serveur par défaut?
c'est à dire:
<Context docBase="yourAppName" path="" reloadable="true">
Tomcat 8 :
Après de nombreuses recherches ce n'est que du code qui fonctionne:
dans server.xml
Redémarrer Tomcat, assurez-vous que lorsque vous accédez à 127.0.0.1:8080, il va afficher le contenu dans 127.0.0.1:8080/apple
Mon projet était d'applications web java sorcière créé par netbeans ,j'ai mis en contexte chemin dans la configuration du projet, pas d'autre chose, même j'ai mis de la pomme.la guerre dans le répertoire webapps.
Pour moi les deux réponses travaillé.
Remarque: lorsque vous déclarez docBase en vertu de contexte puis de les ignorer appBase à l'Hôte.
ROOT.war
et de le placer sous webapps. Alors maintenant inégalée demandes d'url à partir d'autres guerres(contextpaths) de la terre dans cette guerre. C'est la meilleure façon de gérer la RACINE ("/**") chemin de contexte.La deuxième option (double) chargement des guerres de répertoire Webapps de ainsi. Aussi, on a besoin non compressé guerre dossier qui est un mal de tête.
Dans Tomcat 8.X ,sous le répertoire d'accueil de tomcat /conf/dossier server.xml vous pouvez ajouter
<Context>
tag sous<Host>
balise comme indiqué ci-dessous . Mais vous devez redémarrer le serveur pour prendre effetOU si vous utilisez Tomcat 7.X vous pouvez ajouter context.xml fichier dans le dossier WEB-INF dans votre projet . Le contenu du fichier que j'ai utilisé est tel qu'illustré . et il a bien fonctionné pour moi . vous n'avez pas à redémarrer le serveur dans ce cas .
Plus simple et flexible, la solution est ci-dessous:
À l'intérieur de ${Tomcat_home}/config/server.xml
Changer le autoDeploy="false" deployOnStartup="false" sous Hôte élément comme ci-dessous Cela est faut.
Ajouter la ligne ci-dessous en vertu de l' Hôte élément.
Avec l'approche ci-dessus, nous pouvons ajouter autant d'applications sous webapps avec différentes contexte noms de chemin d'accès.
Ci-dessous l'astuce a fonctionné pour moi.
1) Commentaire/supprimer la configuration de server.xml fichier (à l'intérieur du dossier conf) de tomcat.
2) effacez le dossier RACINE (le Cas échéant) résidant à l'intérieur de répertoire webapps de tomcat. Et renommer votre guerre e.g: test.de guerre ) le fichier RACINE.guerre.
Rappeler que bien que la guerre de renommage de fichier à la RACINE.de la guerre "RACINE" doit être en majuscules.
Limitation: Vous pouvez déployer une seule application au sein d'une instance de tomcat.