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 :

[servlet][xml] Erreur de parsing


Sujet :

Servlets/JSP Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut [servlet][xml] Erreur de parsing
    bonjour,

    j'ai un petit probleme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Erreur lors du parsing du document lors de l'appel à construteur.parse(xml) org.xml.sax.SAXParseException: Elément racine de document manquant.

    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
     
    - <siteperso>
    - <categorie name="telechargement" type="auto">
    - <url name="telecharger.com" addr="http://www.telecharger.com">
      <img src="http://telecharger.01net.com/img/v4/logos_tete/tet_TC_droite.gif" /> 
      </url>
      </categorie>
    - <categorie name="achat" type="auto">
    - <url name="surcouf" addr="http://www.surcouf.com">
      <img src="http://www.surcouf.com/img/B2C/logo.gif" /> 
      </url>
    - <url name="ldlc" addr="www.ldlc.com">
      <img src="http://images.ldlc.com/ld/logo-automne.jpg" /> 
      </url>
      </categorie>
      </siteperso>
    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
    public void ParseDOM(PrintWriter out){
            try{
                // création d'une fabrique de documents
                DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance();
     
                // création d'un constructeur de documents
                DocumentBuilder constructeur = fabrique.newDocumentBuilder();
     
                // lecture du contenu d'un fichier XML avec DOM
                URL adresse = new URL("http://james2001.free.fr/servlet/stephane.xml");
                InputStream stream = adresse.openStream();
                Document document = constructeur.parse(stream);
     
     
     
            }catch(ParserConfigurationException pce){
                out.println("Erreur de configuration du parseur DOM");
                out.println("lors de l'appel à fabrique.newDocumentBuilder();");
                out.println(pce.toString());
            }catch(SAXException se){
                out.println("Erreur lors du parsing du document");
                out.println("lors de l'appel à construteur.parse(xml)");
                out.println(se.toString());
            }catch(IOException ioe){
                out.println("Erreur d'entrée/sortie");
                out.println("lors de l'appel à construteur.parse(xml)");
                out.println(ioe.toString());
            }
            }
    je ne trouve pas ce qui cloche. J'ai pourtant deja fait un aplet qui parse le meme fiche et ca marche

    merci de votre aide

  2. #2
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Es-tu sûr que ton stream est bien alimenté avec le fichier que tu nous montres ?
    Regardes ce qu'il se passe si tu flush le stream dans un fichier pour voir !?

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    je ne sais plus commen faire

  4. #4
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    J'ai pris ton document et j'arrive très bien à le parser !!
    Je pense que tu as un problème avec le contenu de ton stream.

    La code suivant fonctionne avec ton doc !

    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
    import javax.xml.parsers.DocumentBuilderFactory;
    import javax.xml.parsers.DocumentBuilder;
    import org.dom4j.Document;
     
    public class Parser {
     
    	public static void main(String args[]) {
    	   try {
    	    DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); 
     
                // création d'un constructeur de documents 
                DocumentBuilder constructeur = fabrique.newDocumentBuilder(); 
     
                // lecture du contenu d'un fichier XML avec DOM 
               // URL adresse = new URL("http://james2001.free.fr/servlet/stephane.xml"); 
                //InputStream stream = adresse.openStream(); 
                Document document = (org.dom4j.Document)constructeur.parse("doc.xml"); 
    	   }
    	   catch (Exception ex) {
    		   ex.printStackTrace();
    	   }
     
    	}
    }

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    Donc il ne trouve pas mon fichier ?!

    Où je dois le placer pour que je l'apel comme ca
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    URL adresse = new URL("stephane.xml");
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File adresse = new File("stephane.xml");
    merci de ton aide. C'est mon premier servlet

  6. #6
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Déjà, il faut mettre le fichier dans un répertoire accessible à ta servlet.
    Je ne suis pas un expert des accès au filesystem mais si tu le mets au même niveau que le répertoire WEB-INF et que tu fais comme moi, sans URL ou File, cela peut peut être fonctionner ?!

  7. #7
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    j'ai mi le fichier dans bin il le trouve mais toujour le meme erreur

  8. #8
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Moi ça marche alors..........je ne sais plus.
    Essayes mon code déjà pour voir si tu n'as pas un autre problème

  9. #9
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    mais le code que tu ma donner c'est une application. Mon parseur marche tres bien pour ce fichier mais dans mon applet.

    Ca me fait chier a cause de ca je ne peu pas avancée dans mon projet

  10. #10
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Tu me parles d'applet maintenant ?

    Tu dis qu'en mettant le fichier dans 'bin' ta servlet le trouve. Le 'bin' de quoi ?
    Pour moi, il faut déployer ton appli dans un WAR et dans la structure d'un WAR tu as le répertoire WEB-INF + 'lib' + 'classes' + une structure qui t'est propre.
    Si tu mets le .xml dans le répertoire 'classes' et que via le classloade (Thread.currentThread.getContextClassLoader())r, tu utilises getSystemResourceAsStream("NOM SIMPLE DU XML") (ne pas mettre le chemin d'accès au fichier ici mais uniquement son nom 'simple'), tu récupère un stream sur ton .xml.
    Ensuite, je ne vois pas pourquoi cela ne fonctionerai pas.
    Si cela ne fonctionne pas, donnes toute ta stack trace

  11. #11
    Membre éprouvé
    Avatar de yolepro
    Profil pro
    Architecte de système d'information
    Inscrit en
    Mai 2002
    Messages
    918
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Mai 2002
    Messages : 918
    Points : 1 144
    Points
    1 144
    Par défaut
    Une technique bete et méchante pour savoir ou se trouve le repertoire de base est de faire l'inverse, c'est à dire de créer un fichier bidon.

    Comme ca tu fais une recherche de ton fichier et tu sais ou il faut mettre ton fichier pour le lire.
    Etre c'est etre relatif.

  12. #12
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    je l'ai deja fait c'est dans bin, j'ai donc mi mon fichier dans ce repertoir et toujour la meme erreur.

    Ne faut il pas ecrire un truc dans "web.xml" ???

  13. #13
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Mais fait ce que j'ai dis dans la dernière réponse !
    Il ne faut pas subir les choses mais en prendre le contrôle. C'est donc à toi de décider où mettre le fichier.
    Mettre le fichier dans le 'bin' n'est pas une solution car si tu héberges ton appli dans un autre AS, le répertoire courant ne sera peut être pas le même. Il faut donc mettre ton .xml dans ton WAR !!!!

  14. #14
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    je lai mit dans le dossier "classes" et j'ai mis l'adresse complet mais j'ai toujour cet erreur.

    Je ne comprend pas tous les treme que tu utilise
    Si cela ne fonctionne pas, donnes toute ta stack trace
    desole mais je debut encore

  15. #15
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Si tu mets le fichier dans le répertoire WEB-INF/classes, tu n'as qu'à mettre le nom simple de ton fichier, genre : "monFichier.xml" dans l'appel à getSystemResourceAsStream

  16. #16
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    dsl mais je ne sais pas ou trouver cette fonction

  17. #17
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Thread.currentThread.getContextClassLoader().getSystemResourceAsStream("monFichier.xml")
    Avec monFichier.xml ici :

    WEB-INF/
    -----classes/
    ---------monFichier.xml

  18. #18
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    Error: 500
    Location: /examples/servlet/titi.htm
    Erreur interne de servlet:

    java.lang.IllegalArgumentException: InputStream cannot be null
    at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:72)
    at toto.ParseDOM(toto.java:37)
    at toto.processRequest(toto.java:22)
    at toto.doGet(toto.java:62)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java)
    at org.apache.tomcat.facade.ServletHandler.doService(ServletHandler.java:534)
    at org.apache.tomcat.core.Handler.invoke(Handler.java:280)
    at org.apache.tomcat.core.Handler.service(Handler.java:193)
    at org.apache.tomcat.facade.ServletHandler.service(ServletHandler.java:445)
    at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:874)
    at org.apache.tomcat.core.ContextManager.service(ContextManager.java:790)
    at org.apache.coyote.tomcat3.Tomcat3Adapter.service(Tomcat3Adapter.java:64)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)
    at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)
    at java.lang.Thread.run(Thread.java:534)
    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
     public void ParseDOM(PrintWriter out){
            try { 
           DocumentBuilderFactory fabrique = DocumentBuilderFactory.newInstance(); 
     
                // création d'un constructeur de documents 
                DocumentBuilder constructeur = fabrique.newDocumentBuilder(); 
     
                // lecture du contenu d'un fichier XML avec DOM 
    //            URL adresse = new URL("stephane.xml");
    //            URLConnection con=adresse.openConnection();
    //            con.connect();
                InputStream stream =Thread.currentThread().getContextClassLoader().getSystemResourceAsStream("stephane.xml");
                Document document = (Document)constructeur.parse(stream); 
     
     
     
            }catch(ParserConfigurationException pce){
                out.println("Erreur de configuration du parseur DOM");
                out.println("lors de l'appel à fabrique.newDocumentBuilder();");
                out.println(pce.toString());
            }catch(SAXException se){
                out.println("Erreur lors du parsing du document");
                out.println("lors de l'appel à construteur.parse(xml)");
                out.println(se.toString());
            }catch(IOException ioe){
                out.println("Erreur d'entrée/sortie");
                out.println("lors de l'appel à construteur.parse(xml)");
                out.println(ioe.toString());
            }
            }
    mon fichier est a l'endroi qu tu ma dit

  19. #19
    ego
    ego est déconnecté
    Rédacteur

    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juillet 2004
    Messages
    1 883
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2004
    Messages : 1 883
    Points : 3 510
    Points
    3 510
    Billets dans le blog
    2
    Par défaut
    là je sèche car chez moi cela fonctionne.
    A la place de Thread.xxxxx essayes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    this.getClass().getClassLoader().getSystemResourceAsStream("stephane.xml");

  20. #20
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    72
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 72
    Points : 35
    Points
    35
    Par défaut
    ca ne marche toujours pas

    tu as essayé avec un servlet ??

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. [MVC] servlet.xml erreur de définition de bean
    Par tomy29 dans le forum Spring Web
    Réponses: 1
    Dernier message: 24/03/2011, 10h50
  2. [Web Service][NuSOAP] Erreur de parsing du XML
    Par binouzzz19 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 28/02/2008, 15h31
  3. Capturer les erreurs de parsing xml
    Par nicolas7777 dans le forum Modules
    Réponses: 0
    Dernier message: 10/02/2008, 21h17
  4. erreur de parsing XML
    Par root76 dans le forum Format d'échange (XML, JSON...)
    Réponses: 0
    Dernier message: 21/02/2007, 17h57
  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, 13h49

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