tomcat tomcat7 root context.xml

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



tomcat7 root (10)

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,

<?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 "/<WEB_APP_NAME>"

Cualquier sugerencia útil.


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

<Context path="" docBase="yourAppContextName"> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> </Context>

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


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.


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

<Context docBase="web" path="/web" reloadable="true" source="org.eclipse.jst.jee.server:web"/>

a

<Context docBase="web" path="" reloadable="true" source="org.eclipse.jst.jee.server:web"/>


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

<Host name="my.host.name" > <Context path="" docBase="/path/to/myapp.war"/> </Host>


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

<Context docBase="/your_webapp_location_directory" path="" reloadable="true" />

Y su aplicación web estará disponible en http://<host>:<port>/


Lo que puedes hacer es lo siguiente;

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

<Context docBase="<yourApp>" path="" reloadable="true" />

Aquí, <yourApp> 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 <catalina_home>/webapps y usar una ruta relativa o absoluta en la etiqueta docBase de ROOT.xml. Algo como esto;

<Context docBase="/opt/mywebapps/<yourApp>" path="" reloadable="true" />

¡Y luego debería estar todo bien!


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 resto 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:

<Context path="" docBase="/var/lib/tomcat7/webapps/ROOT" />

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

<Host name="domianname" appBase="webapps2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" > <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/> </Host>

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!


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:

<Context docBase="yourAppName" path="/yourAppPath" reloadable="true">


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

<!-- Set /apple as default path --> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="apple"> <!-- Default set of monitored resources --> <WatchedResource>WEB-INF/web.xml</WatchedResource> </Context> </Host>

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.


<Context docBase="yourAppName" path="" reloadable="true">

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