¿Cómo cambiar la aplicación ROOT?

Estoy intentando cambiar la aplicación predeterminada de un servidor web Tomcat 6 a una aplicación diferente de “ROOT” (dentro de la carpeta webapps). ¿Cuál es la mejor manera de hacer esto?

Hay tres métodos:

  • Primero apague su Tomcat del directorio its bin ( sh shutdown.sh ). A continuación, elimine todo el contenido de la carpeta de aplicaciones web de Tomcat ( rm -fr * ). A continuación, cambie el nombre de su archivo WAR a ROOT.war , y finalmente inicie su Tomcat desde el directorio bin ( sh startup.sh ).

  • Deje su archivo war en $CATALINA_BASE/webapps con su nombre original. Desactive autoDeploy y deployOnStartup en su elemento Host en el archivo server.xml . Defina explícitamente todos los contextos de la aplicación en server.xml , especificando los atributos path y docBase . Debe hacerlo porque ha desactivado todos los mecanismos de auto-despliegue de Tomcat, y Tomcat ya no desplegará sus aplicaciones a menos que encuentre su Contexto en el server.xml .

    segundo método: para realizar cualquier cambio en cualquier aplicación, deberá detener y reiniciar Tomcat.

  • Coloque su archivo WAR fuera de $CATALINA_BASE/webapps (debe estar afuera para evitar el doble despliegue). Coloque un archivo de contexto denominado ROOT.xml en $CATALINA_BASE/conf/ . El único elemento en este archivo de contexto DEBE tener un atributo docBase que apunte a la ubicación de su archivo WAR. El elemento de ruta no se debe establecer; se deriva del nombre del archivo .xml , en este caso ROOT.xml . Consulte la documentación del Contenedor de contexto para más detalles.

Referencia

Agregar una etiqueta en la etiqueta en server.xml para Tomcat 6 resolverá el problema.

Si usa path="" empty, puede usar una URL como http://localhost/first.do .

En el contexto, los atributos del conjunto de tags docBase="E:\struts-ITRCbook\myStrutsbook" y reloadable="true" , y luego finaliza la etiqueta de contexto.

Debería verse algo como esto:

     

En Tomcat 7 con estos cambios, puedo acceder a myAPP en / y ROOT en /ROOT

   

Agregue arriba a la sección en server.xml

La aplicación predeterminada de ROOT suele ser Tomcat Manager, que puede ser útil, así que se sentía como mantenerla.

así que la forma en que hice mi aplicación ROOT y guardé TCmgr fue así.

renombrado como ROOT a algo más

mv ROOT TCmgr

luego creé un enlace simbólico por el cual ROOT apunta a la aplicación que quiero establecer como predeterminada.

En your app ROOT

funcionó para mí y me pareció el enfoque más fácil.

–nestochan

Según los documentos de Apache Tomcat, puede cambiar la aplicación creando un archivo ROOT.xml. Vea esto para más información:

http://tomcat.apache.org/tomcat-6.0-doc/config/context.html

“La aplicación web predeterminada puede definirse utilizando un archivo llamado ROOT.xml”.

Puedes hacer esto de una manera un poco hack a través de:

  1. Detener a Tomcat
  2. Mover ROOT.war a un lado y rm -rf webapps / ROOT
  3. Copie la aplicación web que desea webapps / ROOT.war
  4. Comience Tomcat

El tercer método de @danny-london no funcionó en Tomcat 7, pero funciona si coloca el archivo ROOT.xml en el directorio $CATALINA_BASE/conf/[enginename]/[hostname] (que para mi configuración más bien básica) es $CATALINA_HOME/conf/Catalina/localhost ). Consulte la documentación del contenedor de contexto .

Una solución alternativa sería crear un servlet que envíe un redireccionamiento a la aplicación web predeterminada deseada y asignar ese servlet a todas las direcciones URL en la aplicación 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"); } } 

Agregue la clase anterior a
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet .
Y agrega lo siguiente a
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml :

   Redirect Redirect com.example.servlet.RedirectServlet   Redirect /  

Y si lo desea, puede modificar fácilmente el RedirectServlet para aceptar un param init para permitirle configurar la aplicación web predeterminada sin tener que modificar la fuente.

No estoy seguro de si esto tendría implicaciones negativas, pero lo probé y parece funcionar.

la configuración context.xml no funcionó para mí. Tomcat 6.0.29 se queja de que el docBase está dentro de la aplicación Base: … Para Tomcat 5 esto realmente funcionó.

Entonces, una solución es poner la aplicación en la carpeta ROOT.

Otra solución muy simple es poner un index.jsp en ROOT que redirecciona a mi aplicación de esta manera: response.sendRedirect (“/ MyApplicationXy”);

Saludos cordiales, Jan

Tengo un problema al configurar Tomcat ‘ server.xml y agregué el elemento Context. Simplemente no quiere usar mi configuración: http://www.oreillynet.com/onjava/blog/2006/12/configuration_antipatterns_tom.html

Si estás en un Unix-like :

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

Hecho.

Funciona para mi.

Veré mis documentos; hay una manera de especificar una configuración para cambiar la ruta de la aplicación web raíz lejos de ROOT (o ROOT.war), pero parece haber cambiado entre Tomcat 5 y 6.

Encontró esto:

http://www.nabble.com/Re:-Tomcat-6-and-ROOT-application…-td20017401.html

Por lo tanto, parece que es posible cambiar la ruta de la raíz (en ROOT.xml), pero está un poco rota: necesita mover su WAR fuera del directorio de despliegue automático. ¿Te importa si pregunto por qué simplemente cambiar el nombre de tu archivo a ROOT.war no es una solución viable?

No es una solución muy buena, pero una forma es redirigir desde la aplicación ROOT a YourWebApp. Para esto, necesita modificar el ROOT index.html.

   Redirecting to /YourWebApp     

O

   Redirecting to /YourWebApp      

Referencia: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html

La mejor forma de cambiar la aplicación raíz de tomcat. Probado en Tomcat 7 y 8.

  1. Vaya al directorio de webapps de tomcat:

    Ejemplo en mi máquina: ~/stack/apache-tomcat/webapps

  2. Renombra, reemplaza o elimina la carpeta ROOT. Mi consejo es cambiar el nombre o crear una copia para la copia de seguridad. Ejemplo, cambie el nombre de ROOT a RENAMED_ROOT:

    mv ROOT RENAMED_ROOT

  3. Mueva el archivo war con su aplicación al directorio webapps de tomcat (es un directorio donde estaba la carpeta ROOT anterior, en mi máquina: ~ / stack / apache-tomcat / webapps)

El archivo de guerra debe tener un nombre ROOT.war . Cambie el nombre de su aplicación si es necesario: yourApplicationName.war -> ROOT.war

  1. Reinicia Tomcat. Después de reiniciar su aplicación será una raíz.

En Tomcat 7 (en el servidor de Windows) no agregué ni edité nada a ningún archivo de configuración. Cambié el nombre de la carpeta ROOT a otra cosa y cambié el nombre de la carpeta de mi aplicación a ROOT y funcionó bien.