Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1417 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [java DOM]parsing d'un xml

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[java DOM]parsing d'un xml

n°1040182
scOulOu
Born Under Saturn
Posté le 08-04-2005 à 15:01:12  profilanswer
 

J'essaie de parser un fichier xml (un web.xml, en fait, qui sert de config à une servlet, et dans lequel je veux récupérer une info sans passer par la servlet) à l'aide du code suivant :

Code :
  1. DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
  2.     factory.setNamespaceAware(true);
  3.     // Lancer le parsing du fichier
  4.     DocumentBuilder docBuilder = factory.newDocumentBuilder();
  5.     return docBuilder.parse("./WebContent/WEB-INF/web.xml" );


 
Sachant que le web.xml est relié à une DTD de sun

Code :
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">


 
Résultat : il y arrive pas, parce qu'il a semble-t-il du mal avec l'adresse de la .dtd

Code :
  1. java.net.UnknownHostException: java.sun.com


 
Qqu'un serait en mesure de m'expliquer ce qui se passe ?

mood
Publicité
Posté le 08-04-2005 à 15:01:12  profilanswer
 

n°1040186
elianor
bannie 17 fois
Posté le 08-04-2005 à 15:02:41  profilanswer
 

Le resolver cherche à se brancher sur le site de sun pour la DTD, mais ne peux pas (tu es sans doutes derrière un proxy). Il faiut que tu implémente un DTDResolver qui va récupérer le fichier en local si tu veux valider.


---------------
JE JE SUIS LIBERTINEEEEEEEEEEE JE SUIS UNE CATINNNNNNNNN §§§§§§§§
n°1040254
scOulOu
Born Under Saturn
Posté le 08-04-2005 à 15:24:43  profilanswer
 

Ok thx, je vais voir avec ça :jap:

n°1040269
TheRom_S
Posté le 08-04-2005 à 15:28:33  profilanswer
 

Salut,
 
j'ai l'impression, après quelques tests de chez moi, que le problème survient lorsqu'il cherche (en interne) le "InetAddress.getByName( ton_uri )" qui correspond à l'ip distante.
 
tu peux essayer de remplacer "java.sun.com" par son ip directe dans l'uri (209.249.116.141) car la fonction getByName ne fais que vérifier la validité de l'addresse dans ce format sans faire de requete sur le reseau.
 
sinon, le pb doit venir de ton reseau (firewall ou autre ...)


---------------
The Rom's, à votre service
n°1040343
benou
Posté le 08-04-2005 à 15:50:51  profilanswer
 

le mieux c'est comme dis kadreg de faire un resolver. en sachant que si tu retourne un Inputstream vide, tu n'auras pas de validation (ce qui n'est pas plus mal dans ton cas)

n°1040529
scOulOu
Born Under Saturn
Posté le 08-04-2005 à 17:29:09  profilanswer
 

TheRom_S a écrit :

Salut,
 
j'ai l'impression, après quelques tests de chez moi, que le problème survient lorsqu'il cherche (en interne) le "InetAddress.getByName( ton_uri )" qui correspond à l'ip distante.
 
tu peux essayer de remplacer "java.sun.com" par son ip directe dans l'uri (209.249.116.141) car la fonction getByName ne fais que vérifier la validité de l'addresse dans ce format sans faire de requete sur le reseau.
 
sinon, le pb doit venir de ton reseau (firewall ou autre ...)


Bon ben le remplacement change effectivt qqch : j'ai une autre erreur lors du parsing :/

Code :
  1. java.net.NoRouteToHostException: Host unreachable: connect


 

benou a écrit :

le mieux c'est comme dis kadreg de faire un resolver. en sachant que si tu retourne un Inputstream vide, tu n'auras pas de validation (ce qui n'est pas plus mal dans ton cas)


Ben quand je retourne un new InputSource() j'ai autre chose :

Code :
  1. java.net.MalformedURLException: java.lang.NullPointerException


 
En fait j'ai l'impression, d'après la javaDoc, qu'il faut vraiment renvoyer une DTD locale avec le resolver... Y'aurait pas moyen de dire au parser d'ignorer la déclaration de DTD, dont j'ai rien à foutre ds ce cas-là ? (je peux pas la virer, parce que le fichier est d'autre part utilisé par une servlet)

n°1040591
TheRom_S
Posté le 08-04-2005 à 18:04:58  profilanswer
 

scOulOu a écrit :

Code :
  1. java.net.NoRouteToHostException: Host unreachable: connect



 
A part un probleme dans ta config reseau, je vois pas ...
vérifie simplement avec l'adresse dans internet explorer par exemple (tu verras rien c normal mais tu verifie l acces)
 
dans l'api :
"Signals that an error occurred while attempting to connect a socket to a remote address and port. Typically, the remote host cannot be reached because of an intervening firewall, or if an intermediate router is down."


---------------
The Rom's, à votre service
n°1040610
scOulOu
Born Under Saturn
Posté le 08-04-2005 à 18:12:36  profilanswer
 

TheRom_S a écrit :

A part un probleme dans ta config reseau, je vois pas ...
vérifie simplement avec l'adresse dans internet explorer par exemple (tu verras rien c normal mais tu verifie l acces)


Ca passe nickel par un explorateur (ie ou firefox). En fait j'ai essayé en foutant un adresse à la con ds l'InputSource du resolver (genr www.yahoo.fr) et pareil, il trve pas (UnknownHostException)...
Dc y'a pas moyen de lui dire de pas faire gaffe à cette foutue DTD ?

n°1040636
scOulOu
Born Under Saturn
Posté le 08-04-2005 à 18:23:03  profilanswer
 

Aaaah ben c'est bon, j'ai réussi à lui faire ignorer les DTD. Faut retourner un new InputSource(new StringReader("" )) par le resolver, en fait. new InputSource() et new InputSource("" ) foirent.
 
Merci à tlm :jap:

n°1047727
zo_zor
Posté le 14-04-2005 à 17:41:49  profilanswer
 

Tu peux me faire un copier/coller de tes sources.
Je n'arrive toujours pas à parser le fichier "web.xml" pour en lire le contenu...

mood
Publicité
Posté le 14-04-2005 à 17:41:49  profilanswer
 

n°1047789
phnatomass
Je m'empare de ton esprit !!
Posté le 14-04-2005 à 18:09:40  profilanswer
 

scOulOu a écrit :


Dc y'a pas moyen de lui dire de pas faire gaffe à cette foutue DTD ?


DocumentBuilderFactory.setValidating(boolean validating)  ?


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [java DOM]parsing d'un xml

 

Sujets relatifs
[Resolu] Asp/Java script pb de variable[JAVA] Applet qui continue à tourner apres la fermeture web.[RESOLU]
integrer une API (librairie) a java[JAVA][awt]Différenciation des couleurs dans une image
statistiques en javaocaml -> java 1.5
[JAVA/STRUTS] Equivalent a un $_GET[] comme en PHP ?[Introspection] Comment "lire" du code java d'une autre appli ?
help svp problème navigateur et JAVA[Java] no line-wrap dans un JTextPane
Plus de sujets relatifs à : [java DOM]parsing d'un xml


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR