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 :

acceder à un fichier xml depuis une jsp


Sujet :

Servlets/JSP Java

  1. #1
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut acceder à un fichier xml depuis une jsp
    Salut,

    J'arrive pas à acceder à un fichier xml depuis ma JSP en donnant le chemin relatif du fichier: J'ai une classe GesXmlFile pour attaquer le fichier xml fzone.xml. voici un extrait du code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    package mybeans;
    .
    .
    .
    public void lireFichier()
     {
      SAXBuilder sxb = new SAXBuilder(); // utilitaire pour parser le fichier
      try
        {
          // création du document JDOM à partir du fichier xml
          docJDOM = sxb.build(new File ("fzone.xml"));
        }
        catch(Exception e){}
     
        // initialisation de la racine du document JDOM
        racine = docJDOM.getRootElement();
     }
    .
    .
    .
    Depuis ma jsp, je fais un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <jsp:useBean id="GXF" class="mybeans.GesXmlFile" scope="page"/>
    et quand j'essaye d'executer la methode lireFichier() depuis la jsp, j'ai
    java.lang.NullPointerException
    mybeans.GesXmlFile.lireFichier(GesXmlFile.java:36)
    mybeans.GesXmlFile.<init>(GesXmlFile.java:21)
    .
    .
    .
    mais si je donne le chemin absolu du fichier (D:\documents\appweb\serveurdns\WEB-INF\classes\mybeans\fzone.xml) ça marche.

    Le fichier xml est dans \WEB-INF\classes\mybeans où mybeans est le package de GesXmlFile.java
    J'ai essayer de sortir mon fichier xml de WEB-INF et j'ai modifié comme ceci la methode lireFichier
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     try
        {
          // création du document JDOM à partir du fichier xml
          docJDOM = sxb.build(new File ("../../../fzone.xml"));
        }
        catch(Exception e){}
    mais ça ne marche . Merci d'avance pour l'aide.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Par défaut
    Salut,

    Contrairement à ce que tu dis, dans ton code, le chemin du fichier xml n'est pas absolu.

    Le problème pourrait bien venir de là.

    @+

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    71
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2003
    Messages : 71
    Par défaut
    Salut,

    Pour trouver le chemin absolu de ton appli, utilise cette méthode de l'objet ServletContext :

    http://java.sun.com/j2ee/1.4/docs/ap...va.lang.String)

    Tu fais un truc du genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    // ctxt a été initialisé avant
    String cheminRacine = ctxt.getRealPath("/");
    String cheminFichierXml = cheminRacine + "/WEB-INF/classes/mybeans/fzone.xml"
    Remarque : Il me semble que l'interface Servlet a une méthode nommée getServletContext() pour récupérer le.... ServletContext !

    @+

  4. #4
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Essaie ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String filename="mybeans/fzone.xml" ;
    ClassLoader classLoader = getClass().getClassLoader();
    File fXml = new File(classLoader.getResource(filename).getFile());

  5. #5
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Merci à tous.
    c_nyv, j'ai utilisé votre code et ça marche. Vous pouvez m'expliquer un peu tout ça? Merci!!!

  6. #6
    Expert confirmé

    Femme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    5 793
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 793
    Par défaut
    Regarde ici, tu y trouveras des explications sur la classe ClassLoader et ses méthodes, comme getResource.

  7. #7
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    Merci encore.

  8. #8
    Membre éclairé Avatar de rvfranck
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2004
    Messages
    746
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2004
    Messages : 746
    Par défaut
    salut,

    On m'a conseillé d'enlever mon fichier xml du repertoire classes de l'application web. je l'ai donc mis ici: racine_application/res/divers/fzone.xml

    j'essaye d'utiliser les ../../ (dans le bean) pour sortir du repertoire WEB-INF mais lorsque j'execute la jsp, j'ai un NullPointerException.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String filename = "../../res/divers/fzone.xml
    J'ai utilisé la methode de derek.mf (merci encore ), et ça marche. Mais je voudrais quand même savoir s'il n'est pas possible d'accèder à un fichier en dehors de WEB-INF depuis un bean (qui se trouve dans classes)?

    Merci.

Discussions similaires

  1. parsser un fichier xml via une jsp
    Par fruwen7 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/06/2012, 11h57
  2. générer un fichier xml depuis une table avec data integrator BO
    Par explorateur dans le forum Alimentation
    Réponses: 0
    Dernier message: 19/01/2010, 14h22
  3. lire dans un fichier xml depuis une tâche ant
    Par wildmary dans le forum ANT
    Réponses: 7
    Dernier message: 03/08/2009, 12h51
  4. fichier xml dans une jsp
    Par mystro7200 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 03/02/2009, 18h24
  5. utilisation d'un fichier xml dans une page jsp
    Par thesorrow dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 22/03/2007, 08h38

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