resource example define context java tomcat configuration symlink context.xml

java - example - Tomcat context.xml files, ¿hay una jerarquía?



tomcat 8 admin console (2)

Intento utilizar enlaces simbólicos en una de las aplicaciones que ejecuto en Tomcat5. Gracias a la ayuda de otra pregunta de StackOverflow , pude hacerlo creando un archivo context.xml en

/...myapplication/META-INF/context.xml

Ahora estoy tratando de implementar esto en un servidor de producción. Sin embargo, hay otras aplicaciones ejecutándose en él. Y hay otro archivo de contexto

/...tomcat/conf/context.xml

Me parece que están configurando configuraciones en todo el servidor para todas las aplicaciones. Si dejo enlaces en el archivo conf / context.xml, mis enlaces simbólicos funcionan. Si no se permiten enlaces en conf / context.xml, los enlaces simbólicos de mi aplicación no funcionan, aunque los he permitido en META-INF / context.xml

Mi pregunta es, ¿conf / context.xml controla todas las aplicaciones? Si quiero que los enlaces simbólicos funcionen solo en una aplicación, ¿necesito eliminar conf / context.xml y crear nuevos archivos de contexto para cada aplicación? ¿O hay una forma en que puedo permitir enlaces simbólicos solo en aplicaciones?


Solo para agregar un punto.

Por lo general, th meta-inf / context.xml se copia en conf / Catalina / localhost / myapplication.xml

Al volver a implementar un archivo de guerra, se borra conf / Catalina / localhost / myapplication.xml y se copia una nueva como se describió anteriormente.

Esto puede ser un verdadero dolor. Me gusta la idea del contexto específico de la aplicación, pero no veo cómo ayuda esto en el directorio meta-inf.

Para Prod, UAT, etc. esto se convierte en un verdadero dolor.

Entonces, para cualquier servidor estático pero específico de la aplicación, es mejor ponerlo en conf / context.xml. Lo cual tiene el negativo de que mantiene el contexto de varias aplicaciones, toque una sin que toque accidentalmente todas ellas.


Vea mi respuesta a la pregunta " ¿Qué archivo de contexto de Tomcat 5 tiene prioridad? ".

Con respecto a su pregunta específica de allowLinks , el valor en conf/context.xml tiene prioridad por defecto. Si no dice nada en conf/context.xml , el valor predeterminado es allowLinks="false" en su conf/context.xml .

Si desea cambiarlo solo para su myapplication , intente decir <Context allowLinks="true" ...> en su META-INF/context.xml no tendrá ningún efecto porque normalmente la configuración conf/context.xml tendrá prioridad .

Pero, si dices <Context allowLinks="true" override="true" ...> en tu META-INF/context.xml , todas tus configuraciones de <Context> en META-INF/context.xml serán de mayor prioridad , anulando cualquier cosa en conf/context.xml .

Finalmente, en lugar de un myapplication/WEB-INF/context.xml , recomiendo usar un archivo conf/Catalina/localhost/myapplication.xml . Esta técnica significa que puede mantener limpios los contenidos de su WEB-INF, que es el agallas de su aplicación web. No me gusta arriesgarme en las tripas de mi webapp. :-)