1 votes

Obtention d'une exception pour mauvais contenu dans la section de fin, lors de l'analyse du xml produit par le client C# dans une application GAEJ.

J'essaie de transférer un morceau potentiellement important de xml d'un client C# vers une application GAEJ, puis de l'analyser dans un document DOM.

J'ai réussi à faire en sorte que le documentbuilder analyse le xml en analysant les données de la requête dans une chaîne de caractères, puis en la découpant, comme tel :

        String xml;
        BufferedReader rdr = req.getReader();
        String line;
        StringBuilder result = new StringBuilder();
        while ((line = rdr.readLine()) != null) {
            result.append(line);
        }
        xml = result.toString();
        db = dbf.newDocumentBuilder();
        Document doc = db.parse(new InputSource(new StringReader(xml.trim())));

Cependant, l'application GAEJ doit être aussi efficace que possible et la lecture ligne par ligne de l'entrée xml potentiellement volumineuse vers une chaîne de caractères, par opposition à l'alimentation du flux source vers l'analyseur syntaxique, semble assez mauvaise. J'aimerais que la procédure suivante fonctionne :

        Document doc = db.parse(request.getInputStream());

Mais ensuite, j'obtiens toujours "org.xml.sax.SAXParseException : Content is not allowed in trailing section". Si j'envoie le contenu de l'appel request.getInputStream() à la console, je peux voir quelques caractères encadrés après la balise de fermeture finale, mais je ne suis pas sûr de savoir comment ils sont arrivés là (le client utilise un encodage UTF-8), ou comment les supprimer du flux d'entrée. Merci !

0voto

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X