Je sais que je peux renommer ma 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 document 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 faire une autre méthode qu'il suggérait.
Les éléments de contexte individuels peuvent être définis explicitement: dans un fichier individuel à /META-INF/context.xml à l'intérieur des fichiers d'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 lorsque j'ai redémarré le serveur, il n'a toujours pas réussi à charger le contexte à "/", il l'a toujours chargé avec le "/<WEB_APP_NAME>"
Tous les pointeurs utiles.
tomcat
tomcat7
root
context.xml
Chantz
la source
la source
Réponses:
Voici ce que vous pouvez faire:
Ajouter un fichier appelé
ROOT.xml
dans<catalina_home>/conf/Catalina/localhost/
Ce ROOT.xml remplacera les paramètres par défaut pour le contexte racine de l'installation tomcat pour ce moteur et cet hôte (Catalina et localhost).
Entrez ce qui suit dans le fichier ROOT.xml;
Voici
<yourApp>
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 pourlocalhost:8080/yourApp
. Pour résoudre ce problème, vous pouvez placer votre application à L'EXTÉRIEUR<catalina_home>/webapps
et utiliser un chemin relatif ou absolu dans la balise docBase de ROOT.xml. Quelque chose comme ça;Et puis tout devrait être OK!
la source
Voici les seules solutions qui ont fonctionné pour moi. Ajoutez ceci au nœud hôte dans le fichier conf / server.xml
la source
server.xml
oucontext.xml
? je vois une balise xml<Context>
dans moncontext.xml
Dans Tomcat 9.0, je n'ai qu'à modifier ce qui suit dans le
server.xml
à
la source
Ce petit code a fonctionné pour moi, en utilisant des hôtes virtuels
la source
server.xml
? Selon par exemple Ali.Mojtehedy ci-dessus, c'est problématique. En outre, d'autres réponses indiquent qu'il/path/to
doit être en dehors du chemin normal des applications Web.La solution la plus rapide et peut-être la meilleure est d'avoir un contenu en dessous
<TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml
Et votre webapp sera disponible sur
http://<host>:<port>/
la source
Foobar
à/opt/tomcat/webapps/Foobar
. J'ai essayé de définir docBase surFoobar
et aussi/opt/tomcat/webapps/Foobar
, mais quand je vais sur `http: // <hôte>: <port> / je vois toujours la page d'accueil de Tomcat au lieu de mon application Foobar. J'ai même redémarré Tomcat. Qu'est-ce que je fais mal?J'ai fait face à ce problème pendant un mois, mettre une balise de contexte dans server.xml n'est pas sûr, cela affecte les éléments de contexte se déployant pour tous les autres hôtes, pour les grandes applications, il faut 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 !! également les connexions de session de base de données chargées deux fois! l'autre façon est de mettre le fichier ROOT.xml qui a une balise de contexte avec un chemin complet tel que:
dans conf / catalina / webappsfoldername et déployez le fichier war en tant que ROOT.war à l'intérieur de webappsfoldername et spécifiez également l'hôte tel
Dans cette approche, les sessions utilisateur des applications de même type n'ont pas une bonne isolation! vous pouvez à l'intérieur de app1 si app1 identique à app2, vous pouvez après la connexion par session côté serveur automatiquement vous connecter à app2?! Vous devez donc 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 disons que jouer avec tomcat nécessite plus de temps que jouer avec d'autres chats!
la source
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 dans le répertoire META-INF de votre application Web, avec le paramètre de chemin de contexte inclus. Cela remplacera le paramètre par défaut du serveur?
c'est à dire:
la source
<Context docBase="yourAppName" path="" reloadable="true">
la source
Tomcat 8: Après de nombreuses recherches, il ne s'agit que de code fonctionnel: dans server.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 une application web java créée par netbeans, j'ai défini le chemin de contexte dans la configuration du projet, rien d'autre, même j'ai mis apple.war dans le dossier webapps.
la source
Pour moi, les deux réponses ont fonctionné.
Remarque: lorsque vous déclarez docBase sous contexte, ignorez appBase sur l'hôte.
ROOT.war
et le placer sous des applications Web. Alors maintenant, les demandes d'URL inégalées d'autres guerres (chemins de contexte) vont atterrir dans cette guerre. C'est une meilleure façon de gérer le chemin de contexte ROOT ("/ **").La deuxième option consiste également à (doubler) le chargement des wars à partir du dossier Webapps. De plus, il n'a besoin que d'un dossier de guerre non compressé, ce qui est un casse-tête.
la source
Dans Tomcat 8.X, sous le répertoire de base de tomcat / conf / folder dans server.xml, vous pouvez ajouter une
<Context>
balise sous la<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 le fichier context.xml dans le dossier WEB-INF de votre projet. Le contenu du fichier que j'ai utilisé est comme indiqué. et cela a bien fonctionné pour moi. vous n'avez pas besoin de redémarrer le serveur dans ce cas.
la source
localhost:8080/<Your App Directory Name>/
etlocalhost:8080/<your app path you wish>/
ces deux URL fonctionnent en même temps. J'ai trouvé ces deux dossiers extraits sous$CATALINA_HOME/webapps/
.La solution la plus simple et flexible est ci-dessous: Inside $ {Tomcat_home} /config/server.xml
Modifiez l' autoDeploy = "false" deployOnStartup = "false" sous l' élément Host comme ci-dessous. Ceci est indispensable.
Ajoutez ci-dessous la ligne sous l' élément hôte .
Avec l'approche ci-dessus, nous pouvons ajouter autant d'applications sous des applications Web avec différents noms de chemin de contexte.
la source
L'astuce 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 tomcat webapps. Et renommez votre fichier war (par exemple: test.war) en ROOT.war.
N'oubliez pas que lorsque vous renommez le fichier war en ROOT.war, "ROOT" doit être en majuscules.
Limitation: vous ne pouvez déployer qu'une seule application dans une seule instance de tomcat.
la source