Ajout de ressources externes à class-path dans Tomcat 8
j'ai une application Tomcat qui doit faire référence à des fichiers de propriétés externes à L'application. En général, ceux-ci sont stockés sur une machine locale à un endroit spécifique comme C:PROJECT_NAMEconf
.
dans Tomcat 7, cela était réalisable en plaçant un fichier context.xml
à l'intérieur de /META-INF/
qui utilisait un VirtualWebappLoader
pour essentiellement ajouter cet emplacement à la classe de la demande comme suit:
<Context>
<Loader className="org.apache.catalina.loader.VirtaulWebappLoader"
virtualClasspath="/PROJECT_NAME/conf"
searchVirtualFirst="true" />
</Context>
comment réaliser la même chose dans Tomcat 8?
3 réponses
il y a une section à ce sujet dans le Tomcat 8 migration guide qui vous dirigera à utiliser un resources configuration
en particulier, vous allez créer un objet WebResourceRoot qui contient le texte suivant dans sa description.
VirtualWebappLoader-remplacé par des ressources pré-et Post-mappées à WEB-INF / lib et WEB-INF / classes
votre nouveau contexte.xml ressemblera à quelque chose comme ceci:
<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>
juste un autre exemple:
veuillez noter les commentaires à l'intérieur et noter que j'ai utilisé PostResources
et non PreResources
pour que je puisse outrepasser les classes dans mon projet actuel si Je ne suis pas satisfait de mon implémentation" util". Je ne suis pas vraiment sûr si JarResource
est traité comme "PostResource" ou "PreResource" mais le fait de surcharger le contenu statique et les classes fonctionne.
<!--
https://tomcat.apache.org/tomcat-8.0-doc/config/resources.html
/q/adding-external-resources-to-class-path-in-tomcat-8-28856/"/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>
copiez simplement les fichiers de propriété dans le dossier lib de Tomcat.
Ou d'améliorer conf/catalina.propriétés:commun.chargeur
avec un dossier pour les fichiers de propriété comme décrit ici: