java tomcat classpath tomcat8

java - Agregar recursos externos a la ruta de clases en Tomcat 8



jsp (3)

Tengo una aplicación Tomcat que necesita hacer referencia a algunos archivos de propiedades que son externos a la aplicación. Generalmente, estos se almacenan en una máquina local en un lugar específico como C:/PROJECT_NAME/conf/ .

En Tomcat 7 esto se pudo lograr colocando un archivo context.xml dentro de /META-INF/ que usó un VirtualWebappLoader para agregar esencialmente esta ubicación a la ruta de VirtualWebappLoader de la aplicación de la siguiente manera:

<Context> <Loader className="org.apache.catalina.loader.VirtaulWebappLoader" virtualClasspath="/PROJECT_NAME/conf" searchVirtualFirst="true" /> </Context>

¿Cómo logro esto mismo en Tomcat 8?


Hay una sección sobre esto en la guía de migración de Tomcat 8 que le indicará que use una configuración de recursos.

En particular, creará un objeto WebResourceRoot que contiene el siguiente texto en su descripción.

VirtualWebappLoader - Reemplazado por Pre y Post-Recursos asignados a WEB-INF / lib y WEB-INF / classes

Tu nuevo context.xml se verá similar al siguiente:

<Context> <Resources className="org.apache.catalina.webresources.StandardRoot"> <PreResources className="org.apache.catalina.webresources.DirResourceSet" base="C://PROJECT_NAME//conf" internalPath="/" webAppMount="/WEB-INF/classes" /> </Resources> </Context>



Solo otro ejemplo:

Tenga en cuenta los comentarios en el interior y tenga en cuenta que utilicé PostResources y no PreResources para poder anular las clases en mi proyecto actual si no estoy satisfecho con mi implementación "util". No estoy realmente seguro de si JarResource se trata como "PostResource" o "PreResource", pero la anulación del contenido estático y las clases funciona.

<!-- https://tomcat.apache.org/tomcat-8.0-doc/config/resources.html http://.com/questions/23143697/adding-external-resources-to-class-path-in-tomcat-8 http://.com/questions/34515852/tomcat-7-application-migration-to-tomcat-8 http://mikusa.blogspot.co.za/2014/07/tips-on-migrating-to-tomat-8-resources.html --> <Context path="/MY_PROJECT" docBase="/MY_PROJECT"> <Resources className="org.apache.catalina.webresources.StandardRoot"> <!-- Post-load the static content from my util project --> <PostResources className="org.apache.catalina.webresources.DirResourceSet" base="/workspace/MY_UTIL_PROJECT/WebContent" webAppMount="/"> </PostResources> <!-- Post-load the classes from my util project --> <PostResources className="org.apache.catalina.webresources.DirResourceSet" base="/workspace/MY_UTIL_PROJECT/WebContent/WEB-INF/classes" webAppMount="/WEB-INF/classes"> </PostResources> <!-- Load the JARs contained within my util project --> <JarResources className="org.apache.catalina.webresources.DirResourceSet" base="/workspace/MY_UTIL_PROJECT/WebContent/WEB-INF/lib" webAppMount="/WEB-INF/lib"> </JarResources> </Resources> </Context>