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 :

[JSP] Parsing XML avec JDOM


Sujet :

Servlets/JSP Java

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut [JSP] Parsing XML avec JDOM
    salut à tous,
    voilà j'ai un programme .java qui marche en mode console lorsque je lui passe en argument un fichier .xml formé. j'aimerai adapter mon code pour le transformer en une page jsp sur un serveur websphere.

    voici le code du programme java :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    import java.io.*;
    import org.jdom.*;
    import org.jdom.input.*;
    import org.jdom.filter.*;
    import java.util.List;
    import java.util.Iterator;
     
     
    public class JDOM2
    {
       static org.jdom.Document document;
       static Element racine;
     
     
    static void afficheALL()
    {
     
       List listEtudiants = racine.getChildren("etudiant");
     
       Iterator i = listEtudiants.iterator();
       while(i.hasNext())
       {
     
          Element courant = (Element)i.next();
          System.out.println(courant.getChild("nom").getText());
       }
    }
       public static void main(String[] args)
       {
          SAXBuilder sxb = new SAXBuilder();
          try
          {
             document = sxb.build(new File("test2.xml"));
          }
          catch(Exception e){
          System.out.println("cause : "+e.getMessage());
          }
     
          racine = document.getRootElement();
     
          afficheALL();
       }
    }
    j'ai déjà fais qq modifs pour transformer ça en une page jsp mais je ne m'y connait pas bien et j'aimerai qq coups de main, pour l'instant le code suivant ne marche pas, je n'ai pas de message d'erreur, il ne veut tout simplement pas afficher la page alors que mes autres pages jsp fonctionnent :

    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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <!-- parse.jsp -->
     
    <%@ page import="java.io.*"%>
    <%@ page import="org.jdom.*"%>
    <%@ page import="org.jdom.input.*"%>
    <%@ page import="org.jdom.filter.*"%>
    <%@ page import="java.util.List"%>
    <%@ page import="java.util.Iterator"%>
     
    <%
       org.jdom.Document document = new org.jdom.Document&#40;&#41;;
       Element racine = new Element&#40;&#41;;
       
       SAXBuilder sxb = new SAXBuilder&#40;&#41;;
       try
         &#123;
            document = sxb.build&#40;new File&#40;"test2.xml"&#41;&#41;;
         &#125;
         catch&#40;Exception e&#41;&#123;
         out.println&#40;"cause &#58; "+e.getMessage&#40;&#41;&#41;;
         &#125;
     
        racine = document.getRootElement&#40;&#41;;
        List listEtudiants = racine.getChildren&#40;"etudiant"&#41;;
     
        Iterator i = listEtudiants.iterator&#40;&#41;;
        while&#40;i.hasNext&#40;&#41;&#41;
        &#123;
         Element courant = &#40;Element&#41;i.next&#40;&#41;;
         out.println&#40;courant.getChild&#40;"nom"&#41;.getText&#40;&#41;&#41;;
        &#125;
    %>
    test2.xml est bien formé comme suit :

    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
    <?xml version="1.0" encoding="UTF-8"?>
    <personnes>
       <etudiant classe="P2">
          <nom>CynO</nom>
          <prenoms>
             <prenom>Nicolas</prenom>
             <prenom>Laurent</prenom>
          </prenoms>
       </etudiant>
       <etudiant classe="P1">
          <nom>Superwoman</nom>
       </etudiant>
       <etudiant classe="P1">
          <nom>Don Corleone</nom>
       </etudiant>
    </personnes>
    merci d'avance

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    Bonjour,

    ce fut un peu laborieux mais j'ai finis par le faire marcher ton exemple !


    1 - Attention au chemin de la librairie jdom.jar qui doit être contenue dans ton projet web.

    2 - La ligne suivante pose problème

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Element racine = new Element&#40;&#41;;
    Les jsp (comme beaucoup d'autres API) ont besoin d'un constructeur public or
    "new Element()" est protected. C'est pas grave tu n'as pas besoins d'instancier ton element racine
    3 - Attention à l'emplacement de ton fichier "test2.xml"
    ce qui marche pour un programme console ne marche pas dans une page jsp.
    [code]new File("test2.xml")[code]

    je te conseille de passer le chemin absolu du fichier (parametre en session).

    PS : je suis surpris que tu n'aie pas d'erreurs lors de la compilation de la JSP. As tu vérifié les logs du serveur ?

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    merci pour ton aide, j'avais effectivement vu pour le protected mais je ne savais pas comment instancier en jsp, maintenant je sais
    effectivement le fait de ne pas avoir d'erreurs à l'éxecution est bizarre, au lieu de ça j'avais un "page cannot be displayed". mais mon serveur wensphere fait des siennes en ce moment... ça marche 1 fois sur 3, peux tu me dire, si tu t'y connais en websphere, si mes .jar (jdom...) doivent se trouver seulement dans WEB-INF/lib/ de mon repertoire d'appli ou ailleurs ? car mes problèmes semblent venir d'ici.
    merci encore pour le coup de pouce

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    je n'avais pas réalisé que tu utilisais Websphere.

    Websphere fournit une version de la librairie qui doit se trouver sous "$WEBSPHERE_HOME/lib". Tu n'as donc pas besoin de l'intégrer à ton projet.

    Vérifie la version de la librairie dans ce répertoire.

  5. #5
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Pietra
    je n'avais pas réalisé que tu utilisais Websphere.

    Websphere fournit une version de la librairie qui doit se trouver sous "$WEBSPHERE_HOME/lib". Tu n'as donc pas besoin de l'intégrer à ton projet.

    Vérifie la version de la librairie dans ce répertoire.
    je n'ai pas de jdom.jar dans ce repertoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    /opt/WebSphere/AppServer/lib> ls j*
    j2ee.jar  j2ee-validation.jar  j2eexml-xerces.jar  js.jar  jsp.jar  jts.jar
    pour info j'ai cette version :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    WebSphere Application Server, Advanced Single Server Edition V4.0
    Application Server Launcher
    Copyright &#40;C&#41; IBM Corporation, 2001

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    d'accord c'est un ancêtre

    Donc dans WEB-INF/lib ca devrait suffire (vérifie quand même s'il n'y as pas une autre version qui traîne)

  7. #7
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Pietra
    d'accord c'est un ancêtre

    Donc dans WEB-INF/lib ca devrait suffire (vérifie quand même s'il n'y as pas une autre version qui traîne)
    d'accord c'est bien ce que j'ai fais, tant que j'ai une experte WebSphere sous la main , peux tu me dire si je dois mettre ces .jar dans $WEBSPHERE_HOME/java/jre/lib/ car je compte utiliser les javabean et j'ai donc besoin de pouvoir compiler des fichiers avec le jdk de WebSphere...est ce necéssaire d'éditer le $CLASSPATH du serveur linux aussi pour qu'il pointe vers ces fichiers jar installés dans WebSphere ?

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    peux tu me dire si je dois mettre ces .jar dans $WEBSPHERE_HOME/java/jre/lib/
    C'est une "bonne pratique" de mettre les librairies externes dans le répertoire lib de la jre mais cela ne dispense pas d'une modification du classpath.

    Car je compte utiliser les javabean et j'ai donc besoin de pouvoir compiler des fichiers avec le jdk de WebSphere
    Je ne comprends pas tout mais je suppose que tu va utiliser la librairie jdom.jar en dehors de ton appli web. Dans ce cas tu peux effectivement modifier le classpath de ton serveur pour que toutes les applications en bénéficie.

    ...est ce necéssaire d'éditer le $CLASSPATH du serveur linux aussi pour qu'il pointe vers ces fichiers jar installés dans WebSphere ?
    Oui Cf. plus haut

    PS : je ne suis pas expert Websphere (et encore moins "experte")

  9. #9
    Membre à l'essai
    Inscrit en
    Août 2005
    Messages
    50
    Détails du profil
    Informations forums :
    Inscription : Août 2005
    Messages : 50
    Points : 18
    Points
    18
    Par défaut
    Citation Envoyé par Pietra
    PS : je ne suis pas expert Websphere (et encore moins "experte")
    désolé tu as un nom de jeune femme russe

    pour ce qui est des javabean, c'est pour les utiliser avec WebSphere mais ça passe nécessairement par une compilation avant de pouvoir les utiliser.
    j'ai une autre question aussi, le CLASSPATH de mon environnement linux et le CLASSPATH de Websphere sont ils 2 choses séparées ? si je renseigne celui de linux par un : export CLASSPATH=... ça ne sera pas pris en compte par WebSphere ?
    merci

  10. #10
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 274
    Points : 307
    Points
    307
    Par défaut
    il faudrait vérifier mais il me semble que Websphere mais aussi Tomcat rédefinissent la variable d'environnement CLASSPATH.

    Websphere pour utiliser les versions des librairies fournie avec le serveur.
    Tomcat pour simplifier son utilisation.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. HttpClient et parsing XML avec JDom
    Par dawadam dans le forum Android
    Réponses: 4
    Dernier message: 07/03/2011, 15h36
  2. HttpClient et parsing XML avec JDom
    Par dawadam dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 05/03/2011, 11h38
  3. [SAX] Recuperer le resultat d"un parsing XML avec SAX
    Par chouxe dans le forum Format d'échange (XML, JSON...)
    Réponses: 1
    Dernier message: 19/12/2006, 16h48
  4. [JDOM] Création d'un fichier xml avec jdom
    Par fabricew59 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/08/2006, 12h17
  5. [SAX] Erreur de parsing XML avec SAX
    Par philobedo dans le forum Format d'échange (XML, JSON...)
    Réponses: 8
    Dernier message: 02/08/2006, 14h49

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