Tomcat : charger une resource présente dans le Shared Class loader - Java - Programmation
Marsh Posté le 06-01-2010 à 12:33:21
Youpi, je viens de trouver !
Alors la réponse :
En fait, en lisant consciencieusement (:D) la doc tomcat et les classloader, le WebAppClassLoader est fils du SharedClassLoader donc on accède au SharedClassLoader (et la ressource que je souhaite) avec :
Code :
|
Note : getParent() monte dans la hierarchie des classloader.
Merci qd même
Marsh Posté le 04-02-2010 à 17:36:30
les fichiers .properties dans /extension, au lieu de /messages ?
Marsh Posté le 06-01-2010 à 12:15:26
Bonjour,
J'ai lu une doc sur tomcat et les classloader :
http://www-igm.univ-mlv.fr/~dr/XPO [...] .php?rub=9
Cependant je n'arrive toujours pas à charger une ressource (.properties) présente dans tomcat/shared/classes.
Dans mon catalina.conf, ce dossier est bien spécifié comme valeur :
shared.loader=${catalina.base}/shared/classes,${catalina.base}/shared/lib/*.jar
Ensuite il existe sur le filesystem la resource que je veux charger : il s'agit de ${catalina.base}/shared/classes/alfresco/extension/services.properties
Dans mon code j'ai essaié toutes les syntaxe de chargement du fichier :
A chaque fois, url a la valeur null (= ressource non trouvée).
Particularité : l'affichage de Thread.currentThread().getContextClassLoader() donne :
Thread.currentThread().getContextClassLoader()
(org.apache.catalina.loader.WebappClassLoader) WebappClassLoader
delegate: false
repositories:
/WEB-INF/classes/
----------> Parent Classloader:
org.apache.catalina.loader.StandardClassLoader@181b3d4
...tout comme s'il n'existait que le webapp class loader. Alors que le shared class loader a été défini.
Une idée pour charger ma ressource ?
Merci
Message édité par Barnabe43 le 06-01-2010 à 12:16:10
---------------
Asus P5Q Pro | C2D E8400 3GHz@3.7GHz | Noctua NH-C12P | Extreme Patriot 2x2Go DDR2-PC8500 | Inno 3D GeForce GTX 260 | WD Raptor 74Go 8Mo | Raid0 Seagate Barracuda 7200.12 500Go