La méthode getRealPath(String) retourne le l'emplacement et le fichier de la ressource demandée, dans le système de fichier.
Tu demandes une ressource interne à l'application, dans WEB-INF.
String propPathName=application.getRealPath("WEB-INF/fic1.properties");
Ce répertoire, et tous les autres en-dessous, ne sont pas accessibles à partir d'une requête http. Tu peux que avoir les ressources accessibles depuis une URL (type 'http://serveur/applic/index.html').
Que dirais-tu de placer le fichier dans un repértoire 'ressources' dans la racine de ton application ? Tu pourrais alors charger le fichier par
String propPathName=application.getRealPath("ressources/fic1.properties");
Si tu veux absolument placer ton fichier dans WEB-INF, place-le dans le répertoire 'WEB-INF/classes', et change ton code par celui-ci :
1 2 3 4 5 6
| <web-app id="WebApp">
<display-name>tp_web</display-name>
<context-param>
<param-name>fic1</param-name>
<param-value>fic1.properties</param-value>
</context-param> |
et
1 2 3 4 5 6 7 8 9 10 11 12 13
| try{
ServletContext application = this.getServletContext();
String propFicName=application.getInitParameter("fic1");
//String propPathName=application.getRealPath(propFicName);
java.util.Properties prop = new java.util.Properties();
prop.load(new FileInputStream(propPathName));
String valeurP2=prop.getProperty("propriete2","valeur_par_defaut2");
System.out.println("P2="+valeurP2);
String valeurP4=prop.getProperty("propriete4","valeur_par_defaut4");
System.out.println("P4="+valeurP4);
} catch(Exception ex)
{ ex.printStackTrace();
} |
Partager