Bonjour à tous,
je développe actuellement sous eclipse une application utilisant des packages métier externe destinée à être implémentée dans un applet.
Je suis censé livrer mon programme avec une classe contenant des méthodes abstraites qui seront redéfinies par mon client.
J'ai deux problèmes quant à l'ouverture d'un fichier properties. Ce fichier est le fichier de paramétrage de mon appli (il définit les niveaux de traces log4j ainsi que des variables nécessaire à l'appli). Ce fichier se trouvera dans un package externe (com.application.params par exemple).
1. Les packages que j'importe implémentent log4j avec un niveau de trace à DEBUG. Or, Je n'ai pas accès au fichier de configuration pour modifier ce niveau, c'est pourquoi je suis obligé de recharger une config log4j.
Pour cela je fais appel à la fonction :
Ce rechargement fonctionne à condition que j'indique le repertoire "bin/com/application/params/param.properties". J'ai essayé avec "../com/application/params/param.properties" pour rendre la configuration plus souple. Cela enlève l'erreur d'ouverture de fichier mais il n'est pas pris en compte par log4j qui reprend les paramètres par défaut en mode DEBUG.
Code : Sélectionner tout - Visualiser dans une fenêtre à part PropertyConfigurator.configure("path")
J'aurais aimé savoir comment faire pour rendre cela dynamique et si il s'agit d'un configuration de classpath, comment dois-je faire et comment mon client devra configuré son applet.
2. Le fichier param.properties me sert également pour des variables. Je l'ouvre avec le code suivant :
J'arrive à ouvrir mon fichier lorsqu'il se trouve dans le même répertoire que mes sources (j'indique le nom du fichier seul comme path). Or du moment que j'externalise mon fichier param.properties dans un package externe, je n'arrive plus à l'ouvrir (même en indiquant le même path "bin/com/application/params/param.properties" qui fonctionne pour mon rechargement de configuration log4j).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 Properties p = new Properties(); InputStream in; try { in = getClass().getResourceAsStream(path); p.load(in); } catch (Exception e) { throw new Exception("<!> Problème d'ouverture du fichier de paramètres.\n" + e.toString()); }
Merci pour vos réponses.
Partager