J'essaie de changer l'application par défaut d'un serveur Web Tomcat 6 en une autre application que "ROOT" (dans le dossier webapps). Quelle est la meilleure façon de procéder?
Il existe trois méthodes:
Arrêtez d'abord votre Tomcat depuis son bin
répertoire ( sh shutdown.sh
). Supprimez ensuite tout le contenu de votre webapps
dossier Tomcat ( rm -fr *
). Renommez ensuite votre fichier WAR ROOT.war
et démarrez enfin votre Tomcat à partir du bin
répertoire ( sh startup.sh
).
Laissez votre fichier war $CATALINA_BASE/webapps
sous son nom d'origine. Désactivez
autoDeploy et deployOnStartup dans votre élément Host dans le server.xml
fichier. Définissez explicitement tous les contextes d'application dans server.xml
, en spécifiant à la fois les attributs path
et docBase . Vous devez le faire car vous avez désactivé tous les mécanismes de déploiement automatique de Tomcat et Tomcat ne déploiera plus vos applications à moins qu'il ne trouve leur contexte dans le server.xml
.
deuxième méthode: pour apporter des modifications à une application, vous devrez arrêter et redémarrer Tomcat.
Placez votre fichier WAR à l'extérieur de $CATALINA_BASE/webapps
(il doit être à l'extérieur pour éviter un double déploiement). Placez un fichier de contexte nommé ROOT.xml
dans $CATALINA_BASE/conf/
. L'élément unique de ce fichier de contexte DOIT avoir un
attribut docBase pointant vers l'emplacement de votre fichier WAR. L'élément path ne doit pas être défini - il est dérivé du nom du .xml
fichier, dans ce cas ROOT.xml
. Consultez la documentation du conteneur Contexte pour plus de détails.
$CATALINA_BASE/conf/[enginename]/[hostname]
répertoire (ce qui est pour ma configuration plutôt basique$CATALINA_HOME/conf/Catalina/localhost
). Reportez-vous à la documentation Conteneur de contexte .sudo systemctl start tomcatx
oùx
représente le numéro de versionL'ajout d'une
<Context>
balise dans la<Host>
baliseserver.xml
pour Tomcat 6 résoudra le problème.Si vous utilisez
path=""
vide, vous pouvez utiliser une URL commehttp://localhost/first.do
.Dans la balise de contexte, définissez les attributs
docBase="E:\struts-ITRCbook\myStrutsbook"
etreloadable="true"
, puis terminez la balise de contexte.Ça devrait ressembler a quelque chose comme ca:
la source
Dans Tomcat 7 avec ces changements, je peux accéder
myAPP
à/
etROOT
à/ROOT
Ajoutez ci-dessus à la
<Host>
section dans server.xmlla source
/ROOT
et que j'essaie de me connecter à la page du gestionnaire en utilisant les informations d'identification correctes, l'accès me est refusé. Sauriez-vous comment résoudre ce problème?L'application par défaut de ROOT est généralement Tomcat Manager - ce qui peut être utile, alors j'avais envie de la garder.
Donc, la façon dont j'ai fait mon application ROOT et gardé TCmgr était comme ça.
renommé ROOT en autre chose
puis créé un lien symbolique par lequel ROOT pointe vers l'application que je souhaite définir par défaut.
a fonctionné pour moi et semblait l'approche la plus simple.
la source
Selon la documentation Apache Tomcat, vous pouvez modifier l'application en créant un fichier ROOT.xml. Voir ceci pour plus d'informations:
http://tomcat.apache.org/tomcat-6.0-doc/config/context.html
"L'application Web par défaut peut être définie à l'aide d'un fichier appelé ROOT.xml."
la source
Vous pouvez le faire de manière légèrement hack-y en:
la source
Une solution alternative serait de créer un servlet qui envoie une redirection vers l'application Web par défaut souhaitée et de mapper ce servlet à toutes les URL de l'application Web ROOT.
Ajoutez la classe ci-dessus à
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet
.Et ajoutez ce qui suit à
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml
:Et si vous le souhaitez, vous pouvez facilement modifier le RedirectServlet pour accepter un paramètre d'initialisation pour vous permettre de définir l'application Web par défaut sans avoir à modifier la source.
Je ne sais pas si cela aurait des implications négatives, mais j'ai testé cela et cela semble fonctionner.
la source
la configuration context.xml n'a pas fonctionné pour moi. Tomcat 6.0.29 se plaint que la docBase se trouve à l'intérieur de l'appBase: ... Pour Tomcat 5, cela a fonctionné.
Une solution consiste donc à placer l'application dans le dossier ROOT.
Une autre solution très simple est de mettre un index.jsp à ROOT qui redirige vers mon application comme ceci: response.sendRedirect ("/ MyApplicationXy");
Meilleures salutations, janv.
la source
J'ai un problème lors de la configuration de Tomcat
server.xml
et de l'ajout d'un élément de contexte. Il ne veut tout simplement pas utiliser ma configuration: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.htmlSi vous êtes dans un
Unix-like
système:mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT
Terminé.
Travaille pour moi.
la source
Le moyen ultime de changer l'application racine de Tomcat. Testé sur Tomcat 7 et 8.
Accédez au répertoire tomcat webapps:
Exemple sur ma machine:
~/stack/apache-tomcat/webapps
Renommez, remplacez ou supprimez le dossier ROOT. Mon conseil est de renommer ou de créer une copie pour la sauvegarde. Exemple renommer ROOT en RENAMED_ROOT:
mv ROOT RENAMED_ROOT
Déplacez le fichier war avec votre application vers le répertoire tomcat webapps (c'est un répertoire où se trouvait l'ancien dossier ROOT, sur ma machine: ~ / stack / apache-tomcat / webapps)
la source
Je vais regarder mes documents; il existe un moyen de spécifier une configuration pour changer le chemin de l'application Web racine loin de ROOT (ou ROOT.war), mais cela semble avoir changé entre Tomcat 5 et 6.
Trouvé ceci:
http://www.nabble.com/Re:-Tomcat-6-and-ROOT-application...-td20017401.html
Donc, il semble que changer le chemin racine (dans ROOT.xml) soit possible, mais un peu cassé - vous devez déplacer votre WAR en dehors du répertoire de déploiement automatique. Cela me dérange si je demande pourquoi le simple fait de renommer votre fichier en ROOT.war n'est pas une solution viable?
la source
Ce n'est pas une très bonne solution, mais une solution consiste à rediriger de l'application ROOT vers YourWebApp. Pour cela, vous devez modifier le ROOT index.html.
OU
Référence: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html
la source
Dans Tomcat 7 (sous le serveur Windows), je n'ai rien ajouté ni modifié dans aucun fichier de configuration. J'ai juste renommé le dossier ROOT en autre chose et renommé mon dossier d'application en ROOT et cela a bien fonctionné.
la source