parsing d'un xml [java DOM] - Java - Programmation
Marsh Posté le 08-04-2005 à 15:02:41
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.
Marsh Posté le 08-04-2005 à 15:28:33
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 ...)
Marsh Posté le 08-04-2005 à 15:50:51
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)
Marsh Posté le 08-04-2005 à 17:29:09
TheRom_S a écrit : Salut, |
Bon ben le remplacement change effectivt qqch : j'ai une autre erreur lors du parsing
Code :
|
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 :
|
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)
Marsh Posté le 08-04-2005 à 18:04:58
scOulOu 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)
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."
Marsh Posté le 08-04-2005 à 18:12:36
TheRom_S a écrit : A part un probleme dans ta config reseau, je vois pas ... |
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 ?
Marsh Posté le 08-04-2005 à 18:23:03
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
Marsh Posté le 14-04-2005 à 17:41:49
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...
Marsh Posté le 14-04-2005 à 18:09:40
scOulOu a écrit : |
DocumentBuilderFactory.setValidating(boolean validating) ?
Marsh Posté le 08-04-2005 à 15:01:12
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 :
Sachant que le web.xml est relié à une DTD de sun
Résultat : il y arrive pas, parce qu'il a semble-t-il du mal avec l'adresse de la .dtd
Qqu'un serait en mesure de m'expliquer ce qui se passe ?