IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Servlets/JSP Java Discussion :

lire un fichier .properties à partir d'une servlet


Sujet :

Servlets/JSP Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut lire un fichier .properties à partir d'une servlet
    Bonjour,
    A partire d'une servlet j’essaye d’accéder a un fichier .propertie mais ça ne marche pas .

    Le fichier .proterties est dans WEB-INF/fic1.properties

    Dans web.xml j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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>WEB-INF/fic1.properties</param-value>
    </context-param>
    Dans la sevlete j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    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();
    }
    je recupere bien le propFicName (=WEB-INF/fic1.properties) mais propPathName est toujours egal a null.


    est ce que quelqu’un a une idée ?

  2. #2
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    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.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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 :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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();
    }

  3. #3
    Membre confirmé
    Inscrit en
    Novembre 2007
    Messages
    106
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 106
    Par défaut
    salut,

    j'ai déplacé le fichier fic1 dans le repertoire web-inf/class et j'ai modifié ma sevlet mais il m'affiche un messafe comme quoi il trouve pas le fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    try{
    ServletContext application = this.getServletContext();
    String propFicName=application.getInitParameter("fic1");
    java.util.Properties prop = new java.util.Properties();
    prop.load(new FileInputStream(propFicName));
    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();
    }

  4. #4
    Membre émérite Avatar de Lorantus
    Homme Profil pro
    Consultant développeur indépendant / Java/VB/C(++)/ObjectPal
    Inscrit en
    Août 2007
    Messages
    599
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Consultant développeur indépendant / Java/VB/C(++)/ObjectPal

    Informations forums :
    Inscription : Août 2007
    Messages : 599
    Par défaut
    A partir de ce post :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    prop.load(getClass().getResourceAsStream(propFicName));

Discussions similaires

  1. lire un fichier cvs à partir d'une url
    Par denis.ws dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 17/05/2008, 18h13
  2. [BDD] Lire un fichier XML à partir d'une BD
    Par nass007 dans le forum XQUERY/SGBD
    Réponses: 5
    Dernier message: 19/04/2008, 19h25
  3. Lire un fichier XML à partir d'une URL
    Par spaukensen dans le forum Langage
    Réponses: 3
    Dernier message: 18/03/2008, 11h03
  4. redirection vers un fichier a partir d'une servlet
    Par air75 dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 03/02/2008, 21h34
  5. lire un fichier xml à partir d'une application java
    Par diamonds dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 23/01/2007, 18h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo