Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1039 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Où mettre ses fichiers properties dans une webapp ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Où mettre ses fichiers properties dans une webapp ?

n°272007
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 18-12-2002 à 11:32:21  profilanswer
 

Salut,
 
Dans le cadre du développement d'une webapp, je me demande où il est le plus propre d'enregistrer ses fichiers Properties pour qu'ils puissent être accessibles par les classes Java facilement...
 
- Directement dans le répertoire contenant les classes ? Je pense pas puisqu'il est purgé dès que je reconstruis le projet
- Dans un sous-répertoire sous le répertoire racine des classes style /classes/Properties ?
- Directement sous /WEB-INF ?
- Dans un sous-répertoire style /WEB-INF/Properties ?
 
Idem, quel est le code le plus propre pour accéder à ces fichiers ? J'utilise actuellement un this.getClass().getResourceAsStream(...) mais j'aime pas trop cette manière de procéder. Quelqu'un a une autré idée ?
 
Merci d'avance

mood
Publicité
Posté le 18-12-2002 à 11:32:21  profilanswer
 

n°272016
lorill
Posté le 18-12-2002 à 11:37:55  profilanswer
 

perso on les mets direct dans WEB-INF, mais j'ai deja vu des projets ou ils créeaient un repertoire WEB-INF/etc et mettaient toute la config la dedans (properties + fichiers xml) et je trouve ca pas mal

n°272022
benou
Posté le 18-12-2002 à 11:40:35  profilanswer
 

je sais pas si c'est le plus propre mais moi je les mets dans WEB-INF/conf
 
pour moi tu utilises la bonne manière pour récupérer le flux (this.getClass().getResourceAsStream(...)) : comme ca , c'est le classloader de la classe qui est utilisé pour récupérer le fichier de properties.
 
exemple de chose à ne pas faire (oui c'est du déjà vu) : Object.class.getResourceAsStream(...)
 
ca ca va utiliser le classLoader de Object qui a toute les chance d'être le ClassLoader "racine" => dans un environnement multi-classloader (genre tomcat), ca va pas marcher du tout !!!

n°272025
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 18-12-2002 à 11:44:51  profilanswer
 

lorill a écrit :

perso on les mets direct dans WEB-INF, mais j'ai deja vu des projets ou ils créeaient un repertoire WEB-INF/etc et mettaient toute la config la dedans (properties + fichiers xml) et je trouve ca pas mal


 
C'est exactement ce que je fais, j'ai créé un répertoire /WEB-INF/config qui contient mes fichiers Properties et XML mais mon code java n'arrive pas à trouver les fichiers, j'essaie de faire:
 

Code :
  1. InputStream is = null;
  2. // Chargement de la réglementation en mémoire
  3. Properties properties = new Properties();
  4. try {
  5. is = this.getClass().getResourceAsStream("Reglementation.properties" );
  6. properties.load(is);
  7. } catch (IOException ioe) {
  8. LOGGER.error("Impossible de lire le fichier Reglementation.properties !", ioe);
  9. return;
  10. }


 
mais à l'exécution, j'obtiens l'erreur suivante:
 
java.lang.NullPointerException
 at java.io.Reader.<init>(Reader.java:61)
 at java.io.InputStreamReader.<init>(InputStreamReader.java:80)
 at java.util.Properties.load(Properties.java:189)
 at com.ibm.hraccess.selfservice.util.ZDLookUp.run(ZDLookUp.java:115)
 at java.lang.Thread.run(Thread.java:536)
 
qui m'indique que l'erreur a lieu sur la ligne
 

Code :
  1. properties.load(is);


 
C'est donc que mon fichier Properties n'est pas correctement trouvé. Est-ce-que je dois appeler mon Props par
 
"Reglementation.properties" ?
"/config/Reglementation.properties" ?
"./config/Reglementation.properties" ?
 
J'essaie à eptu près tous les cas mais je trouve pas  :??:

n°272067
El_gringo
Posté le 18-12-2002 à 12:17:43  profilanswer
 

Moi je place mes fichier à la racine de ma webapp, et j'utilise ça (dans ma classe étandant HttpServlet bien sûr !) :

Code :
  1. getServletContext().getRessourceAsStream("\MonFichier.properties" );
  2. // ne pas oublier le '\'

n°272144
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 18-12-2002 à 14:00:53  profilanswer
 

El_Gringo a écrit :

Moi je place mes fichier à la racine de ma webapp, et j'utilise ça (dans ma classe étandant HttpServlet bien sûr !) :

Code :
  1. getServletContext().getRessourceAsStream("\MonFichier.properties" );
  2. // ne pas oublier le '\'




 
Oui c'est vrai que c'est une autre possibilité mais si je me rappelle bien, Mr Benou l'avait déconseillé car du coup ton fichier de Properties est accessible en saisissant l'URL dans ton navigateur

n°272149
El_gringo
Posté le 18-12-2002 à 14:10:27  profilanswer
 

MachinBidule1974 a écrit :


 
Oui c'est vrai que c'est une autre possibilité mais si je me rappelle bien, Mr Benou l'avait déconseillé car du coup ton fichier de Properties est accessible en saisissant l'URL dans ton navigateur


 
Accessible en lecture, oui. c gênant dans ton cas ? Dans le miens, absolument pas.

n°272151
benou
Posté le 18-12-2002 à 14:12:47  profilanswer
 

sinon, moi ce que j'ai fait c'est que je les ai mit dans le rep WEB-INF/conf et que je passe le chemin vers le fichier de properties en paramètres de la servelt dans le web.xml

n°272152
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 18-12-2002 à 14:13:07  profilanswer
 

El_Gringo a écrit :


 
Accessible en lecture, oui. c gênant dans ton cas ? Dans le miens, absolument pas.


 
Et bien, un fichier de configuration accessible en lecture ça n'est pas trop gênant sauf si ton fichier contient des infos un peu sensibles, genre un mot de passe pour se connecter à un serveur SMTP, etc...
 
Mais comme j'aime bien les choses carrées, ça me semble pas top quand même...
 
 :hello:

n°272157
benou
Posté le 18-12-2002 à 14:19:07  profilanswer
 

on peut pas accéder à un truc dans le WEB-INF à partir du ServletContext.getRessourceAsStream ?

mood
Publicité
Posté le 18-12-2002 à 14:19:07  profilanswer
 

n°272159
machinbidu​le1974
Do you feel lucky, punk ?
Posté le 18-12-2002 à 14:26:59  profilanswer
 

benou a écrit :

on peut pas accéder à un truc dans le WEB-INF à partir du ServletContext.getRessourceAsStream ?


 
J'ai pas fait le test mais il me semble que non. Ca me semblerait logique qu'une ressource au sens web soit obligatoirement située sous la racine de la webapp... Vais vérifier

n°272167
El_gringo
Posté le 18-12-2002 à 14:43:31  profilanswer
 

benou a écrit :

sinon, moi ce que j'ai fait c'est que je les ai mit dans le rep WEB-INF/conf et que je passe le chemin vers le fichier de properties en paramètres de la servelt dans le web.xml


 
C pas bête...

n°272168
El_gringo
Posté le 18-12-2002 à 14:44:30  profilanswer
 

MachinBidule1974 a écrit :


 
Et bien, un fichier de configuration accessible en lecture ça n'est pas trop gênant sauf si ton fichier contient des infos un peu sensibles, genre un mot de passe pour se connecter à un serveur SMTP, etc...
 
Mais comme j'aime bien les choses carrées, ça me semble pas top quand même...
 
 :hello:  


 
Ben c'est loin d'être crade, cette méthode getRessourceAsStream est faite pour ce genre de trucs...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Où mettre ses fichiers properties dans une webapp ?

 

Sujets relatifs
[JS] Mettre une valeur dans une autre fenêtre [ - Job's Done - ][Java] Comment créer la javadoc des fichiers de plusieurs packages ?
Mettre une image pour submit ou risette ?Ou puis-je trouver une liste de ts les pays pr mettre dans un combo?
[ C ] les principales commande sur les fichiers...Lecture de fichiers .wav
[Java] Mettre 1 URL dans un ShowMessageprob avec l'upload de fichiers - $HTTP_POST_FILES
Je dois mettre quoi la entre ? svp[php] peut on mettre 3 listbox differentes sur la meme page ?
Plus de sujets relatifs à : Où mettre ses fichiers properties dans une webapp ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR