Comment changer l’application ROOT?

J’essaie de changer l’application par défaut d’un serveur Web Tomcat 6 en une application différente de “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 répertoire bin ( sh shutdown.sh ). Supprimez ensuite tout le contenu de votre dossier webapps Tomcat ( rm -fr * ). ROOT.war ensuite votre fichier WAR en ROOT.war et enfin démarrez votre Tomcat à partir du répertoire bin ( sh startup.sh ).

  • Laissez votre fichier de guerre dans $CATALINA_BASE/webapps sous son nom d’origine. Désactivez autoDeploy et deployOnStartup dans votre élément Host dans le fichier server.xml . Définissez explicitement tous les contextes d’application dans server.xml , en spécifiant les atsortingbuts path et docBase . Vous devez le faire car vous avez désactivé tous les mécanismes de déploiement automatique 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 en dehors de $CATALINA_BASE/webapps (il doit être en dehors pour éviter un double déploiement). Placez un fichier de contexte nommé ROOT.xml dans $CATALINA_BASE/conf/ . L’élément unique dans ce fichier de contexte DOIT avoir un atsortingbut 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 fichier .xml , dans ce cas ROOT.xml . Voir la documentation du conteneur Contexte pour plus de détails.

Référence

L’ajout d’une dans la de server.xml pour Tomcat 6 résoudra le problème.

Si vous utilisez path="" vide, vous pouvez utiliser une URL comme http://localhost/first.do .

Dans la balise de contexte, définissez les atsortingbuts docBase="E:\struts-ITRCbook\myStrutsbook" et reloadable="true" , puis docBase="E:\struts-ITRCbook\myStrutsbook" la balise de contexte.

Ça devrait ressembler a quelque chose comme ca:

     

Dans Tomcat 7 avec ces modifications, je peux accéder à myAPP à / et ROOT à /ROOT

   

Ajoutez ci-dessus à la section dans server.xml

L’application ROOT par défaut est généralement Tomcat Manager – ce qui peut être utile, donc vous avez envie de le garder.

donc la façon dont j’ai fait mon app ROOT et gardé TCmgr était comme ça.

renommé ROOT à autre chose

mv ROOT TCmgr

puis créé un lien symbolique grâce auquel ROOT pointe vers l’application que je veux utiliser par défaut.

ln -s your app ROOT

travaillé pour moi et semblait l’approche la plus simple.

–nestochan

Selon les documents 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 en utilisant un fichier appelé ROOT.xml.”

Vous pouvez le faire d’une manière légèrement hack-y en:

  1. Stop Tomcat
  2. Déplacez ROOT.war de côté et rm -rf webapps / ROOT
  3. Copiez la webapp que vous voulez sur webapps / ROOT.war
  4. Démarrer Tomcat

La troisième méthode de @danny-london ne fonctionnait pas pour moi dans Tomcat 7, mais elle fonctionne si vous placez le fichier ROOT.xml dans le répertoire $CATALINA_BASE/conf/[enginename]/[hostname] (qui pour ma configuration plutôt simple est $CATALINA_HOME/conf/Catalina/localhost ). Reportez-vous à la documentation Conteneur Contexte .

Une autre solution consisterait à créer une servlet qui envoie une redirection vers l’application Web par défaut souhaitée et mappe cette servlet à toutes les URL de l’application Web ROOT.

 package com.example.servlet; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class RedirectServlet extends HttpServlet { @Override public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.sendRedirect("/myRootWebapp"); } } 

Ajouter 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 :

   Redirect Redirect com.example.servlet.RedirectServlet   Redirect /  

Et si vous le souhaitez, vous pouvez facilement modifier le RedirectServlet pour accepter un paramètre init afin de vous permettre de définir l’application Web par défaut sans avoir à modifier la source.

Je ne suis pas sûr si cela aurait des implications négatives, mais je l’ai testé et cela semble fonctionner.

la configuration context.xml ne fonctionnait pas pour moi. Tomcat 6.0.29 se plaint de la présence de docBase dans l’appBase: … Pour Tomcat 5, cela fonctionnait réellement.

Une solution consiste donc à placer l’application dans le dossier ROOT.

Une autre solution très simple consiste à placer un index.jsp sur ROOT qui redirige vers mon application comme ceci: response.sendRedirect (“/ MyApplicationXy”);

Cordialement, Jan

J’ai un problème lors de la configuration de Tomcat ‘ server.xml et de l’élément de contexte ajouté. Il ne veut tout simplement pas utiliser ma config: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.html

Si vous êtes dans un Unix-like type Unix-like :

  1. mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
  2. ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT

Terminé.

Travaille pour moi.

Je vais regarder mes docs; Il y a un moyen de spécifier une configuration pour changer le chemin de l’application web racine de ROOT (ou ROOT.war), mais il 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 le changement de chemin racine (dans ROOT.xml) soit possible, mais un peu cassé – vous devez déplacer votre fichier WAR en dehors du répertoire de déploiement automatique. Attention, si je vous demande pourquoi renommer votre fichier ROOT.war n’est pas une solution viable?

Ce n’est pas une très bonne solution, mais une solution consiste à redirect l’application ROOT vers YourWebApp. Pour cela, vous devez modifier le fichier index.html.

   Redirecting to /YourWebApp     

OU

   Redirecting to /YourWebApp      

Référence: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html

Un moyen ultime de changer l’application racine de Tomcat. Testé sur Tomcat 7 et 8.

  1. Déplacer vers le répertoire webapps tomcat:

    Exemple sur ma machine: ~/stack/apache-tomcat/webapps

  2. Renommez, remplacez ou supprimez le dossier ROOT. Mon conseil est de renommer ou de créer une copie pour la sauvegarde. Exemple: renommer ROOT à RENAMED_ROOT:

    mv ROOT RENAMED_ROOT

  3. Déplacez le fichier war avec votre application dans le répertoire tomcat webapps (c’est un répertoire où se trouvait l’ancien dossier ROOT, sur ma machine: ~ / stack / apache-tomcat / webapps)

Le fichier de guerre doit avoir un nom ROOT.war . Renommez votre application si nécessaire: yourApplicationName.war -> ROOT.war

  1. Redémarrez tomcat. Après le redémarrage, votre application sera une racine.

Dans Tomcat 7 (sous serveur Windows), je n’ai ajouté ou modifié aucun fichier de configuration. Je viens de renommer le dossier ROOT en un autre et j’ai renommé le dossier de mon application en ROOT.