Bonjour,
je dispose d'un fichier d'entrée spring de la forme suivante :
Afin de le parser, je crée un SaxParser comme suit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd"> <beans> ..... </beans>
Je rajoute des handlers spécifiques à mon parser et je lance le parsing de mon fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 protected SAXParser createParser() throws ParserConfigurationException, SAXException { SAXParserFactory SAX_FACTORY = SAXParserFactory.newInstance(); // Initialize the parser. XMLReaderFactory.createXMLReader(); SAX_FACTORY.setNamespaceAware(true); SAX_FACTORY.setValidating(false); final SAXParser parser = SAX_FACTORY.newSAXParser(); return parser; }
Et là SAX part dans une sorte de boucle infinie, et je ne sais pas ce qu'il fait...
J'ai réussi à le suivre en debug jusque dans le XMLEntityManager quand il essaye de récupérer un InputStream :
stream = connect.getInputStream();
(connect étant une HttpURLConnection).
Or je lui ai bien mis la propriété parser.setValidate(false) !
Vu que je n'ai internet sur mon poste que derrière un proxy je pense que c'est cela qui pose problème.
En effet si je rajoute les valeurs de mon proxy aux propriétés système, le parsing se fait correctement.
Seulement voilà, je ne dois pas coder ces propriétés en dur...
Comment faire pour empêcher le parser d'aller vérifier la DTD sur le net?
Merci,
Nico
Partager