Sé que puedo cambiar el nombre de mi aplicación web (o es el archivo WAR) a ROOT pero esta es una forma terrible de hacerlo, en mi humilde opinión. Ahora revisé el documento de Tomcat y dice
NO se recomienda colocar elementos directamente en el archivo server.xml
Así que intenté hacerlo con otro método que sugirió.
Los elementos de contexto individuales se pueden definir explícitamente: en un archivo individual en /META-INF/context.xml dentro de los archivos de la aplicación.
Entonces creé un /META-INF/context.xml
con el siguiente código,
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>
Pero después de implementar cuando reinicié el servidor, todavía no pudo cargar el contexto en "/", todavía lo cargó con el "/<WEB_APP_NAME>"
Cualquier puntero útil.
tomcat
tomcat7
root
context.xml
Chantz
fuente
fuente
Respuestas:
Lo que puedes hacer es lo siguiente;
Añadir un archivo llamado
ROOT.xml
en<catalina_home>/conf/Catalina/localhost/
Este ROOT.xml anulará la configuración predeterminada para el contexto raíz de la instalación de tomcat para ese motor y host (Catalina y localhost).
Ingrese lo siguiente al archivo ROOT.xml;
Aquí
<yourApp>
está el nombre de, bueno, tu aplicación ... :)Y ahí lo tienes, tu aplicación ahora es la aplicación predeterminada y aparecerá en
http://localhost:8080
Sin embargo, hay un efecto secundario; Su aplicación se cargará dos veces. Una vez por
localhost:8080
y una vez porlocalhost:8080/yourApp
. Para solucionar esto, puede poner su aplicación FUERA<catalina_home>/webapps
y usar una ruta relativa o absoluta en la etiqueta docBase de ROOT.xml. Algo como esto;¡Y entonces todo debería estar bien!
fuente
Aquí sigue las únicas soluciones que funcionaron para mí. Agregue esto al nodo Host en conf / server.xml
fuente
server.xml
ocontext.xml
? veo una etiqueta xml<Context>
en micontext.xml
En Tomcat 9.0, solo tengo que cambiar lo siguiente en el
server.xml
a
fuente
Este pequeño código funcionó para mí, usando hosts virtuales
fuente
server.xml
? Según, por ejemplo, Ali.Mojtehedy anterior eso es problemático. Además, otras respuestas indican que/path/to
debe estar fuera del camino normal de las aplicaciones web.Lo más rápido y puede ser la mejor solución es tener el siguiente contenido en
<TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml
Y tu aplicación web estará disponible en
http://<host>:<port>/
fuente
Foobar
en/opt/tomcat/webapps/Foobar
. Intenté configurar docBaseFoobar
y también/opt/tomcat/webapps/Foobar
, pero cuando voy a `http: // <host>: <port> / todavía veo la página de inicio de Tomcat en lugar de mi aplicación Foobar. Incluso reinicié Tomcat. ¿Qué estoy haciendo mal?Me enfrenté a este problema durante un mes. Poner la etiqueta de contexto dentro de server.xml no es seguro, afecta a los elementos de contexto que se implementan para todos los demás hosts, para las aplicaciones grandes se necesitan errores de conexión y tampoco un buen aislamiento, por ejemplo, puede acceder a otros sitios por nombre de carpeta dominio2 .com / domain1Folder !! ¡también las conexiones de la sesión de la base de datos se cargaron dos veces! la otra forma es poner el archivo ROOT.xml que tiene una etiqueta de contexto con una ruta completa como:
en conf / catalina / webappsfoldername e implemente war file como ROOT.war dentro de webappsfoldername y también especifique host como
¡En este enfoque también para las sesiones de usuario de aplicaciones del mismo tipo no tiene un buen aislamiento! puede ingresar a app1 si app1 es igual que app2, luego de iniciar sesión en la sesión del lado del servidor, ¿puede iniciar sesión automáticamente en app2? ¡Entonces debe mantener la sesión de los usuarios en el caché del lado del cliente y no con jsessionid! Podemos cambiar el nombre del motor de localhost para resolverlo. ¡pero digamos que jugar con tomcat necesita más tiempo que jugar con otros gatos!
fuente
No se recomienda actualizar la configuración del servidor como server.xml o ROOT.xml.
Puede colocar un archivo de configuración context.xml en el directorio META-INF de su aplicación web, con la configuración de ruta de contexto incluida. ¿Esto anulará la configuración predeterminada del servidor?
es decir:
fuente
<Context docBase="yourAppName" path="" reloadable="true">
fuente
Tomcat 8: después de muchas búsquedas, esto solo funciona: en server.xml
Reinicie Tomcat, asegúrese de que cuando acceda a 127.0.0.1:8080, se mostrará el contenido en 127.0.0.1:8080/apple
Mi proyecto fue una aplicación web de Java creada por netbeans, configuré la ruta de contexto en la configuración del proyecto, nada más, incluso puse apple.war en la carpeta webapps.
fuente
Para mí ambas respuestas funcionaron.
Nota: cuando declara docBase en contexto, ignore appBase en el host.
ROOT.war
y colocarlo debajo de webapps. Entonces, ahora las solicitudes de URL incomparables de otras guerras (contextpaths) aterrizarán en esta guerra. Esta es una mejor manera de manejar la ruta de contexto ROOT ("/ **").La segunda opción es (doble) cargar las guerras desde la carpeta Webapps también. También solo necesita una carpeta de guerra sin comprimir, lo cual es un dolor de cabeza.
fuente
En Tomcat 8.X, en la carpeta / conf / directorio principal de tomcat en server.xml, puede agregar una
<Context>
etiqueta debajo de la<Host>
etiqueta como se muestra a continuación. Pero debe reiniciar el servidor para que surta efectoO si está utilizando Tomcat 7.X, puede agregar el archivo context.xml en la carpeta WEB-INF en su proyecto. El contenido del archivo que utilicé es como se muestra. y funcionó bien para mí No es necesario reiniciar el servidor en este caso.
fuente
localhost:8080/<Your App Directory Name>/
ylocalhost:8080/<your app path you wish>/
estas dos URL funcionan al mismo tiempo. Encontré estas dos carpetas extraídas debajo$CATALINA_HOME/webapps/
.La solución más simple y flexible se encuentra a continuación: Inside $ {Tomcat_home} /config/server.xml
Cambie autoDeploy = "false" deployOnStartup = "false" en el elemento Host como se muestra a continuación. Esto es obligatorio.
Agregue debajo de la línea debajo del elemento Host .
Con el enfoque anterior, podemos agregar tantas aplicaciones bajo aplicaciones web con diferentes nombres de ruta de contexto.
fuente
El siguiente truco funcionó para mí.
1) Comente / elimine la siguiente configuración del archivo server.xml (dentro de la carpeta conf) de tomcat.
2) Elimine la carpeta ROOT existente (si existe) que reside dentro de la carpeta tomcat webapps. Y cambie el nombre de su archivo war (por ejemplo: test.war) a ROOT.war.
Recuerde que al cambiar el nombre del archivo de guerra a ROOT.war "ROOT" debe estar en mayúsculas.
Limitación: puede implementar solo una aplicación dentro de una instancia de Tomcat.
fuente