TP07 : org.dom4j.DocumentException: Prematured end of file

Modérateurs : graffion, jmdouin, agoncal, mlebihan

NicoH
Messages : 9
Inscription : 11 nov. 2016 17:19

TP07 : org.dom4j.DocumentException: Prematured end of file

Message par NicoH » 26 nov. 2016 4:27

Bonjour,
Je rencontre un problème avec verifyCreditCardServlet.
Dans la méthode service, j'utilise le code suivant pour récupérer le xml depuis la requète :

Code : Tout sélectionner

Document document = reader.read(URLDecoder.decode(request.getParameter("param"), "UTF-8"));
			
Cette ligne conduit à l'erreur suivante :

Code : Tout sélectionner

Testcase: testBarkBankVerifyValidCreditCard took 0.538 sec
    [junit] 	Caused an ERROR
    [junit] Error on line 1 of document  : Premature end of file. Nested exception: Premature end of file.
    [junit] org.dom4j.DocumentException: Error on line 1 of document  : Premature end of file. Nested exception: Premature end of file.
    [junit] 	at org.dom4j.io.SAXReader.read(SAXReader.java:482)
    [junit] 	at org.dom4j.io.SAXReader.read(SAXReader.java:343)
    [junit] 	at com.barkbank.verifier.VerifyCreditCardServletTest.sendToServletAndGetStatus(Unknown Source)
    [junit] 	at com.barkbank.verifier.VerifyCreditCardServletTest.testBarkBankVerifyValidCreditCard(Unknown Source)
    [junit] Nested exception: 
    [junit] org.xml.sax.SAXParseException; lineNumber: 1; columnNumber: 1; Premature end of file.
    [junit] 	at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    [junit] 	at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    [junit] 	at org.dom4j.io.SAXReader.read(SAXReader.java:343)
    [junit] 	at com.barkbank.verifier.VerifyCreditCardServletTest.sendToServletAndGetStatus(Unknown Source)
    [junit] 	at com.barkbank.verifier.VerifyCreditCardServletTest.testBarkBankVerifyValidCreditCard(Unknown Source)
J'ai mis une trace sur le xml de la requète et il est conforme à ce qui est spécifié dans l'énoncé du TP.
Je l'ai passé dans un analyseur XML en ligne et il n'y a pas d'erreur.
J'ai également créé une String en local dans la servlet contrnant le xml attendu puis je l'ai donné à SAXreader et j'obtiens la même erreur.

J'ai nettoyé les répertoires de Tomcat comme indiqué ici :
http://deptmedia.cnam.fr/phpBB3/viewtop ... =27&t=9118

Le problème est toujours présent et je ne comprends pas pourquoi SAXreader ne parvient pas à décoder le xml alors qu'il ne manque pas de balise fermante.
Il semble que beaucoup de personnes sur le net rencontre cette erreur sans trop comprendre à quoi elle est due.

Si quelqu'un a une idée, je prends :-)

Merci d'avance.

Bon week-end.

Nico.

NicoH
Messages : 9
Inscription : 11 nov. 2016 17:19

Re: TP07 : org.dom4j.DocumentException: Prematured end of fi

Message par NicoH » 26 nov. 2016 10:21

Bonjour,
La nuit porte conseil.

Pour le parsing de la requète, il ne faut pas utiliser SAXReader

Code : Tout sélectionner

Document document = reader.read(URLDecoder.decode(request.getParameter("param"), "UTF-8"));
comme je le faisais mais DocumentHelper.parseText

Code : Tout sélectionner

document = DocumentHelper.parseText(URLDecoder.decode(request.getParameter("param"), "UTF-8"));
Bon week-end.

Nico.

Répondre

Qui est en ligne ?

Utilisateurs parcourant ce forum : gmfgsdfderd et 1 invité