webapps webapp usr puerto deploy context cambiar application tomcat tomcat6

usr - tomcat webapp as root



¿Cómo cambiar la aplicación ROOT? (14)

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?


Agregar una etiqueta <Context> en la etiqueta <Host> 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 etiquetas docBase="E:/struts-ITRCbook/myStrutsbook" y reloadable="true" , y luego finaliza la etiqueta de contexto.

Debería verse algo como esto:

<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false"> <Context path="" docBase="E:/struts-ITRCbook/myStrutsbook" reloadable="true"> </Context> </Host>


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 .


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.


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

<Context path="" docBase="myAPP"/> <Context path="ROOT" docBase="ROOT"/>

Agregue arriba a la sección <Host> en server.xml


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.

Reference


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


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.

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.

<html> <head> <title>Redirecting to /YourWebApp</title> </head> <body onLoad="javascript:window.location=''YourWebApp'';"> </body> </html>

O

<html> <head> <title>Redirecting to /YourWebApp</title> <meta http-equiv="refresh" content="0;url=YourWebApp" /> </head> <body> </body> </html>

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


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



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 :

<servlet> <display-name>Redirect</display-name> <servlet-name>Redirect</servlet-name> <servlet-class>com.example.servlet.RedirectServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>Redirect</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping>

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.


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?


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