Web app // Servlet // pb avec lib externe

Fermé
Fou riant Messages postés 32 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 - 10 nov. 2009 à 15:28
Fou riant Messages postés 32 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 - 10 nov. 2009 à 17:08
Bonjour,

Houston! We got a Problem!!
Que je vous explique plus précisément ou est le problème....

Voilà, je suis en train de développer un Servlet en Java déployé ensuite sur un serveur Apache Tomcat 6. Jusqu'à là rien d'extraordinaire...mais, dans une action (genre DoGet(...)), je fait appelle à un .jar externe.
La lib qu'on me fourni est bien loader, cependant, l'initiation de la classe nécessite un fichier .properties et c'est ce fichier qui me pose problème.

L'appel ce passe de la manière suivante, et je n'ai pas le choix :
(on appellera la classe TOTO)
TOTO.init(login, password);

puis TOTO.[les autres méthodes qui m'intéressent](agrs...)

la méthode "init" demande un fichier .properties, ça ne parait pas merveilleux, mais c'est là que ça se complique, car le fichier de conf en question n'est pas trouvé par la classe.
J'ai essayé de mettre le fichier properties dans à peu près tous les dossiers possibles et inimaginables de l'application, rien à faire, le fichier n'est pas vu par la classe TOTO!

En farfouillant un peu la lib, j'ai trouvé la manière dont était récupéré le fichier :

Properties p = new Properties();
InputStream in = p.getCass().getRessourceAsStream("fichier.properties");
p.load(in);


J'ai recopier ce code dans mon code (en local) et ça ne marche pas.
Par contre si je mets :

Properties p = new Properties();
ClassLoader loader = this.getCass().getClassLoader();
InputStream in = loader.getRessourceAsStream("fichier.properties");
p.load(in);

Et ben ça marche nickel...mais je ne peut pas changer la lib (restriction obligatoire)

Quelqu'un a-t-il une idée sur le sujet, genre en triturant le bootclasspath ou autre?

Merci d'avance pour toutes possibles réponses...
Cordialement
A voir également:

1 réponse

Fou riant Messages postés 32 Date d'inscription jeudi 5 juin 2008 Statut Membre Dernière intervention 10 novembre 2009 2
10 nov. 2009 à 17:08
Je tiens à préciser que le fichier properties est externe au jar importer. Juste pour spécifier un peu plus mon problème...
je vous donne aussi mon architecture pour avoir une meilleur vision du projet:

./.
..| META-INF/.
..|.................| MANIFEST.MF
..|
..| WEB-INF/.
..................| classes/.
..................|............| com/.
..................|.....................| api/.
..................|.....................|.......| dao/.
..................|.....................|.......|.......| (*.class)
..................|.....................|.......| domain/.
..................|.....................|.......|.............|(*.class)
..................|.....................|.......|.............|(*.hbm.xml)
..................|.....................|.......| servlet/.
..................|.....................|.......|...........|(*.class)
..................|.....................|.......| util/.
..................|.....................|...............|(*.class)
..................|.....................| hibernate.cfg.xml
..................| conf/.
..................| |(*.properties)
// J'ai aussi essayé de mettre le fichier ou alors le dossier dans tous les répertoires possibles
// comme "classes" qui est dans le classpath de base.
..................| lib/.
..................| |(*.jar)
..................| web.xml
0