Estoy tratando de cambiar la aplicación predeterminada de un servidor web Tomcat 6 a una aplicación diferente a "ROOT" (dentro de la carpeta webapps). ¿Cuál es la mejor manera de hacer esto?
Hay tres métodos:
Primero apague su Tomcat desde su bin
directorio ( sh shutdown.sh
). Luego, elimine todo el contenido de su webapps
carpeta Tomcat ( rm -fr *
). Luego cambie el nombre de su archivo WAR ROOT.war
y finalmente inicie su Tomcat desde el bin
directorio ( sh startup.sh
).
Deje su archivo de guerra $CATALINA_BASE/webapps
con su nombre original. Desactive
autoDeploy e deployOnStartup en su elemento Host en el server.xml
archivo. Defina explícitamente todos los contextos de aplicación en server.xml
, especificando los atributos de ruta
y docBase . Debe hacerlo porque ha deshabilitado todos los mecanismos de implementación automática de Tomcat, y Tomcat ya no implementará 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 una doble implementación). Coloque un archivo de contexto nombrado ROOT.xml
en $CATALINA_BASE/conf/
. El elemento único 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 debe establecerse .xml
; en este caso , se deriva del nombre del archivo ROOT.xml
. Consulte la documentación del Contexto contenedor para más detalles.
$CATALINA_BASE/conf/[enginename]/[hostname]
directorio (que para mi configuración bastante básica es$CATALINA_HOME/conf/Catalina/localhost
). Consulte la documentación del Contexto Context .sudo systemctl start tomcatx
donde sex
encuentra el número de versiónAgregar una
<Context>
etiqueta en la<Host>
etiquetaserver.xml
para Tomcat 6 resolverá el problema.Si usa
path=""
vacío, puede usar una URL comohttp://localhost/first.do
.En la etiqueta de contexto, configure los atributos
docBase="E:\struts-ITRCbook\myStrutsbook"
yreloadable="true"
, a continuación, finalice la etiqueta de contexto.Debería verse más o menos así:
fuente
En Tomcat 7 con estos cambios, puedo acceder
myAPP
en/
yROOT
en/ROOT
Agregue arriba a la
<Host>
sección en server.xmlfuente
/ROOT
e intento iniciar sesión en la página del Administrador con las credenciales correctas, se me niega el acceso. ¿Sabrías cómo solucionar esto?La aplicación predeterminada de ROOT suele ser Tomcat Manager, lo que puede ser útil, así que tuve ganas de mantenerlo.
Así que la forma en que hice mi aplicación ROOT y mantuve TCmgr fue así.
renombró ROOT a otra cosa
luego creó un enlace simbólico mediante el cual ROOT apunta a la aplicación que quiero que sea la predeterminada.
funcionó para mí y parecía el enfoque más fácil.
fuente
De acuerdo con 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".
fuente
Puede hacer esto de una manera ligeramente pirata:
fuente
Una solución alternativa sería crear un servlet que envíe una redirección a la aplicación web predeterminada deseada y asignar ese servlet a todas las URL en la aplicación web ROOT.
Agregue la clase anterior a
CATALINA_BASE/webapps/ROOT/WEB-INF/classes/com/example/servlet
.Y agregue lo siguiente a
CATALINA_BASE/webapps/ROOT/WEB-INF/web.xml
:Y si lo desea, puede modificar fácilmente el RedirectServlet para aceptar un parámetro de inicio que le permita configurar la aplicación web predeterminada sin tener que modificar la fuente.
No estoy seguro de si hacer esto tendría implicaciones negativas, pero lo probé y parece funcionar.
fuente
la configuración context.xml no funcionó para mí. Tomcat 6.0.29 se queja de que docBase está dentro de appBase: ... Para Tomcat 5, esto realmente funcionó.
Entonces, una solución es colocar la aplicación en la carpeta ROOT.
Otra solución muy simple es poner un index.jsp a ROOT que redirija a mi aplicación de esta manera: response.sendRedirect ("/ MyApplicationXy");
Saludos cordiales, Jan
fuente
Tengo un problema cuando configuré 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.htmlSi estás en un
Unix-like
sistema:mv $CATALINA_HOME/webapps/ROOT $CATALINA_HOME/webapps/___ROOT
ln -s $CATALINA_HOME/webapps/your_project $CATALINA_HOME/webapps/ROOT
Hecho.
Funciona para mi.
fuente
La mejor manera de cambiar la aplicación raíz de Tomcat. Probado en Tomcat 7 y 8.
Vaya al directorio de tomba webapps:
Ejemplo en mi máquina:
~/stack/apache-tomcat/webapps
Cambiar el nombre, reemplazar o eliminar la carpeta ROOT. Mi consejo es renombrar o crear una copia de respaldo. Ejemplo renombrar ROOT a RENAMED_ROOT:
mv ROOT RENAMED_ROOT
Mueva el archivo war con su aplicación al directorio tomcat webapps (es un directorio donde estaba la carpeta ROOT antigua, en mi máquina: ~ / stack / apache-tomcat / webapps)
fuente
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 raíz (en ROOT.xml), pero un poco roto: debe mover su WAR fuera del directorio de implementación automática. ¿Te importa si te pregunto por qué simplemente renombrar tu archivo a ROOT.war no es una solución viable?
fuente
No es una muy buena solución, pero una forma es redirigir desde la aplicación ROOT a YourWebApp. Para esto necesita modificar el ROOT index.html.
O
Referencia: http://staraphd.blogspot.com/2009/10/change-default-root-folder-in-tomcat.html
fuente
En Tomcat 7 (bajo el servidor de Windows) no agregué ni edité nada en ningún archivo de configuración. Acabo de cambiar el nombre de la carpeta ROOT a otra cosa y cambié el nombre de mi carpeta de aplicación a ROOT y funcionó bien.
fuente