[Java] Fichier de config, comment ne pas en hardcoder le path ?

Fichier de config, comment ne pas en hardcoder le path ? [Java] - Programmation

Marsh Posté le 02-01-2002 à 11:01:31    

Bonjour,
 
j'ai réalisé un ensemble de servlet. Les paramètres de mon application sont dans un fichier de configuration (plusieurs en fait, mais un seul importe). J'ai hard codé le nom et le path de ce fichier de configuration dans une de mes classe.  
Mais mon boss (je suis en stage) me dit qui il y aurait moyen de ne pas hard coder le path. Qu' il y aurait une méthode pour que la servlet ai chercher le fichier dont on lui passe le nom (dans le path ?) ?
 
Info Intox ? Une piste ?
 
Merci pour vos lumières .
 
V

Reply

Marsh Posté le 02-01-2002 à 11:01:31   

Reply

Marsh Posté le 02-01-2002 à 12:02:03    

Et bien ca dépend sur quel application serveur tu tournes. Mais s'il est J2EE, voici comment tu peux faire:
 
Suppose que ta servlet s'appelle SendMailServlet (pq pas? ;) ). Voici une partie du fichier web.xml de ton application (voir dans le répertoire WEB-INF du répertoire consacré à ton application.

Code :
  1. <servlet>
  2.    <servlet-name>SendMailServlet</servlet-name>
  3.    <servlet-class>com.devoteam.SendMailServlet</servlet-class>
  4.        <init-param>
  5.          <param-name>configFileName</param-name>
  6.          <param-value>SendMailServlet.properties</param-value>
  7.        </init-param>
  8.        <init-param>
  9.          <param-name>configFilePath</param-name>
  10.          <param-value>/home/me/web/properties</param-value>
  11.        </init-param>       
  12.     </servlet>


 
Voilà tu as donc deux infos qui ne sont pas hard codées mais bien dans un fichier de conf. Si ces infos doivent etre accessibles à toutes les servlets de ton app tu peux les mettre en variable de contexte ...
 
Dans ta servlet tu peux faire un getInitParameter("configFileName" ) pour récpuperer la valeur du fichier de conf.
 
A+
 
PS : si tu veux plus de détails, donne ton app server (tomcat, websphere, jrun, weblogic, ...)


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Marsh Posté le 02-01-2002 à 13:14:40    

darklord22 a écrit a écrit :

 
 
PS : si tu veux plus de détails, donne ton app server (tomcat, websphere, jrun, weblogic, ...)  
 




 
tomcat
 
v

Reply

Marsh Posté le 02-01-2002 à 13:52:04    

VingtCent a écrit a écrit :

 
 
tomcat
 
v  




 
Regardes dans <tomcat_install>\webapps\lenomdetonapps\WEB-INF\web.xml
 
Si le fichier n'existe pas, tu dois le créer. Mais il existe logiquement puisque c'est là que tu déclares tes servlets et le mapping.
 
C'est clair sinon l'explication ?


---------------
What is popular is not always right, what is right is not always popular :D
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed