Cómo establecer la ruta de contexto de una aplicación web en Tomcat 7.0

Sé que puedo cambiar el nombre de mi aplicación web (o es el archivo WAR) a ROOT, pero esta es una manera 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 traté de hacerlo con otro método que sugirió.

Los elementos de contexto individuales pueden definirse explícitamente: en un archivo individual en /META-INF/context.xml dentro de los archivos de la aplicación.

Así que creé un /META-INF/context.xml con el siguiente código,

   

Pero después de implementar cuando reinicié el servidor todavía no pudo cargar el contexto en “/”, todavía lo cargó con "/"

Cualquier sugerencia útil.

Lo que puedes hacer es lo siguiente;

Agregue un archivo llamado ROOT.xml en /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 en el archivo ROOT.xml;

  

Aquí, es el nombre de, bueno, tu aplicación … 🙂

Y ahí lo tienes, tu aplicación ahora es la aplicación predeterminada y se mostrará en http://localhost:8080

Sin embargo, hay un efecto secundario; su aplicación se cargará dos veces. Una vez para localhost:8080 y una vez para localhost:8080/yourApp . Para solucionarlo, puede poner su aplicación FUERA de /webapps y usar una ruta relativa o absoluta en la etiqueta docBase de ROOT.xml. Algo como esto;

  

¡Y luego debería estar todo bien!

Aquí sigue las únicas soluciones que funcionaron para mí. Agregue esto al nodo Host en conf / server.xml

   WEB-INF/web.xml  

vaya al archivo server.xml de Tomcat y configure la ruta en blanco

Este pequeño código funcionó para mí, usando hosts virtuales

    

En Tomcat 9.0, solo tengo que cambiar lo siguiente en el server.xml

  

a

  

La más rápida y la mejor solución es tener el contenido debajo del /conf/Catalina/localhost/ROOT.xml

  

Y su aplicación web estará disponible en http://:/

Me enfrenté a este problema durante un mes. Poner etiqueta de contexto dentro de server.xml no es seguro. Afecta a los elementos de contexto que se despliegan para el rest del host; para las aplicaciones grandes, toma los errores de conexión y no es bueno; por ejemplo, puede acceder a otros sitios por nombre de carpeta domain2 .com / domain1Folder !! también conexiones de sesión de base de datos cargadas dos veces! a la inversa, se coloca el archivo ROOT.xml que tiene una etiqueta de contexto con una ruta completa, como por ejemplo:

   

en conf / catalina / webappsfoldername y despliegue el archivo war como ROOT.war dentro de webappsfoldername y también especifique host tal

     

En este enfoque también para el mismo tipo de aplicaciones de usuario no tiene un buen aislamiento! usted puede dentro de la aplicación1 si la aplicación1 es lo mismo que la aplicación2 que puede después de iniciar sesión por la sesión del lado del servidor automáticamente puede iniciar sesión en la aplicación2?! ¡Así que tienes que mantener a los usuarios en la 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!

vaya al archivo server.xml de Tomcat y configure la ruta en blanco

Tomcat 8: después de muchas búsquedas, este código solo funciona: en server.xml

     WEB-INF/web.xml   

Reinicie Tomcat, asegúrese de que cuando acceda a 127.0.0.1:8080, se muestre el contenido en 127.0.0.1:8080/apple

Mi proyecto fue una aplicación web java creada por netbeans, configuré una ruta de contexto en la configuración del proyecto, nada más, incluso puse apple.war en la carpeta webapps.

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:

  

Para mí, ambas respuestas funcionaron.

  1. Agregar un archivo llamado ROOT.xml en / conf / Catalina / localhost /
  
  1. Agregar entrada en server.xml
      WEB-INF/web.xml     

Nota: cuando declara docBase en contexto, ignore appBase en el Host.

  1. Sin embargo, he preferido convertir mi nombre de guerra como ROOT.war y colocarlo en webapps. Por lo tanto, ahora las solicitudes de URL inigualables 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 de la carpeta Webapps también. También solo necesita una carpeta de guerra sin comprimir que es un dolor de cabeza.

El siguiente truco funcionó para mí.

1) Comente / elimine la configuración siguiente del archivo server.xml (dentro de la carpeta conf) de tomcat.

2) Eliminar la carpeta ROOT existente (si existe) que reside dentro de la carpeta webapps de tomcat. Y cambie el nombre de su archivo de guerra (p. Ej .: 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.

    Intereting Posts