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

Format d'échange (XML, JSON...) Java Discussion :

Problème de lecture de fichier xml avec dom4j


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Points : 110
    Points
    110
    Par défaut Problème de lecture de fichier xml avec dom4j
    bonjour,

    jai un probleme avec l'api dom4j, je travaille sous windows et je veux lire le fichier "d:\dev\...\r2d.xml", mais l'exception suivante se produit :



    ----*
    [Wed Apr 05 13:07:36 GMT 2006]
    org.dom4j.DocumentException: unknown protocol: d Nested exception: unknown protocol: d
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.dom4j.io.SAXReader.read(SAXReader.java:321)
    at r2d.config.ConfigLoader.loadXmlConfig(ConfigLoader.java:37)
    at r2d.config.ConfigLoader.loadConfig(ConfigLoader.java:87)
    at r2d.web.R2DServlet.init(R2DServlet.java:42)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3915)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4176)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:2988)
    at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:906)
    at org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:473)
    at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Unknown Source)
    Nested exception:
    java.net.MalformedURLException: unknown protocol: d
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at java.net.URL.<init>(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at com.sun.org.apache.xerces.internal.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(Unknown Source)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.dom4j.io.SAXReader.read(SAXReader.java:321)
    at r2d.config.ConfigLoader.loadXmlConfig(ConfigLoader.java:37)
    at r2d.config.ConfigLoader.loadConfig(ConfigLoader.java:87)
    at r2d.web.R2DServlet.init(R2DServlet.java:42)
    at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1105)
    at org.apache.catalina.core.StandardWrapper.load(StandardWrapper.java:932)
    at org.apache.catalina.core.StandardContext.loadOnStartup(StandardContext.java:3915)
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4176)
    at org.apache.catalina.core.StandardContext.reload(StandardContext.java:2988)
    at org.apache.catalina.manager.ManagerServlet.reload(ManagerServlet.java:906)
    at org.apache.catalina.manager.HTMLManagerServlet.reload(HTMLManagerServlet.java:473)
    at org.apache.catalina.manager.HTMLManagerServlet.doGet(HTMLManagerServlet.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:689)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:524)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:869)
    at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:667)
    at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:527)
    at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
    at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
    at java.lang.Thread.run(Unknown Source)
    Pourquoi ? et que faire ?

  2. #2
    Membre habitué
    Inscrit en
    Mars 2005
    Messages
    130
    Détails du profil
    Informations personnelles :
    Âge : 43

    Informations forums :
    Inscription : Mars 2005
    Messages : 130
    Points : 139
    Points
    139
    Par défaut
    Je suis pas sur de ma réponse, mais tu as fait une page en jsp ou quelque chose dans le genre?
    Essaye de mettre l'adresse relative de ton fichier xml, pas une adresse avec des d:/ .
    Essaye deja en mettant ton fichier xml avec les autre fichiers et en passant juste en paramètre le nom du fichier. J'ai l'impression qu'il ne trouve pas ton fichier.

  3. #3
    Membre régulier
    Inscrit en
    Mars 2006
    Messages
    121
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 121
    Points : 110
    Points
    110
    Par défaut
    en fait je viens de voir la source du probleme,
    l'exception n'est pas declenchée par une classe spécifique de dom4j, mais da la classe URL du package java.net, qui declenche l'exception

    java.net.MalformedURLException: unknown protocol: d

    en fait moi je veux donner le chemin absolu du fichier, cependant, il doit respecter le schema suivant :

    [scheme:][//authority][path][?query][#fragment]

    scheme = http, ftp, file

    d'où l'url que j'ai donnée : 'D:\DEV\Tomcat 5.5\webapps\A-R2D\WEB-INF\r2d-config.xml'

    n'est pas valide

    dans un premier temps j'ai pu regler le probleme en donnant l'url correcte du fichier :


    file:///D:/DEV/Tomcat%205.5/webapps/A-R2D/WEB-INF/r2d-config.xml


    mais ce que je veux faire maintenant c'est transformer le chemin du fichier, qui est sous le format windows d:\... en format d'url file:///d:/... avant de le passer à dom4j,

    y a t-il une méthode ou class java qui fait ceci ?

  4. #4
    Membre habitué Avatar de Xavinou
    Inscrit en
    Mai 2005
    Messages
    135
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 135
    Points : 156
    Points
    156
    Par défaut
    La classe File possède les méthodes toURL() et toURI()

Discussions similaires

  1. Problème pour lire un fichier Xml avec Xpath
    Par adrix26 dans le forum VB.NET
    Réponses: 1
    Dernier message: 06/11/2008, 17h06
  2. Problème de lecture de fichier .txt avec Flash
    Par cdevl32 dans le forum Flex
    Réponses: 0
    Dernier message: 25/05/2008, 17h35
  3. [DOM4J] Problème pour "parser" un fichier XML avec accents
    Par mlny84 dans le forum Format d'échange (XML, JSON...)
    Réponses: 7
    Dernier message: 26/11/2007, 19h06
  4. [DOM4J] Comment parser un fichier xml avec dom4j
    Par taouja dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 12/04/2007, 07h47
  5. problème pour parser un fichier xml avec XML::Simple
    Par black_code dans le forum Modules
    Réponses: 3
    Dernier message: 30/01/2006, 19h32

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