java - descargar - tomcat 8.5 23
¿Qué archivo de contexto de Tomcat 5 tiene prioridad? (3)
La documentación de Tomcat dice:
Las ubicaciones para los descriptores de contexto son;
$ CATALINA_HOME / conf / [enginename] / [hostname] /context.xml
$ CATALINA_HOME / webapps / [webappname] /META-INF/context.xml
En mi servidor, tengo al menos 3 archivos flotando:
1 ...tomcat/conf/context.xml
2 ...tomcat/Catalina/localhost/myapp.xml
3 ...tomcat/webapps/myapp/META-INF/context.xml
¿Cuál es el orden de precedencia?
Mi entendimiento es:
- tomcat / conf / context.xml es el contexto.xml "predeterminado" cuyos contenidos están superpuestos con las definiciones del contexto de la aplicación web. El contexto context.xml predeterminado de mi TC 5 no contiene casi nada, aparte de enumerar el web.xml como recurso supervisado, lo que respalda esta noción.
- tomcat / Catalina //. xml se usa para la aplicación web. O bien se coloca aquí de forma manual, o se toma de su aplicación web en el momento del despliegue ... por lo que este es el verdadero maestro que utiliza TC. Si edita, los cambios se leerán el próximo inicio.
- tomcat / webapps / myapp / META-INF / context.xml - esto se copia a tomcat / Catalina / en la implementación inicial si altera esto después de la implementación inicial, no creo que tenga ningún efecto
No he encontrado ninguna documentación oficial, pero he observado que el orden de carga es:
1 tomcat_home/conf/context.xml
2 tomcat_home/webapps/myapp/META-INF/context.xml
Donde # 2 es el último aplicado (por lo que su configuración anula todas las anteriores, donde corresponda).
Nunca he usado los archivos de contexto llamados webapp (su opción n. ° 2).
Para los archivos que enumeró, la respuesta simple suponiendo que está utilizando todos los valores predeterminados, el orden es (tenga en cuenta el conf / Catalina / localhost):
...tomcat/conf/context.xml
...tomcat/conf/Catalina/localhost/myapp.xml
...tomcat/webapps/myapp/META-INF/context.xml
Estoy basando esto (y la discusión siguiente) en la documentación oficial de Tomcat 5.5 para Context Conteiner .
Entonces, si esa es la respuesta simple, ¿cuál es la respuesta completa?
Tomcat 5.5. buscará en un par de otros lugares elementos de <Context>
más allá de los que ha enumerado (consulte los documentos oficiales).
META-INF/context.xml
nunca se abrirá si Tomcat encuentra un Catalina/localhost/myapp.xml
. Entonces, si realmente tiene todos los archivos anteriores, es más correcto decir que el META-INF/context.xml
es irrelevante , no es que tenga la precedencia más baja.
Si dices <Context override="true" ...>
en tu Catalina/localhost/myapp.xml
que será la mayor prioridad, independientemente de conf/context.xml
. Lo mismo en su META-INF/context.xml
, siempre que no tenga un Catalina/localhost/myapp.xml
(consulte el párrafo anterior).
Además, la porción /Catalina/localhost/
de la ruta en los archivos anteriores en realidad proviene del conf/server.xml
"predeterminado" y coincide con el <Engine name="Catalina" defaultHost="localhost">
. Si su server.xml
usa diferentes valores para name
y defaultHost
en <Engine>
, esa es la estructura de directorios donde se verá Tomcat.
Finalmente, para la ...tomcat/
parte de Tomcat de los archivos que enumeró, Tomcat usa el directorio de la variable de entorno $CATALINA_BASE
. Si eso no está establecido, utiliza el directorio de la variable de entorno $CATALINA_HOME
, que es el directorio de la instalación de Tomcat. Me gusta configurar y usar $CATALINA_BASE
para que no "contamine" mi instalación de Tomcat.