Page JSP qui renvoie du xml [Résolu]

cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention - 16 juil. 2007 à 12:39 - Dernière réponse : cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention
- 17 juil. 2007 à 11:15
Salut,

J'ai une page JSP (status.jsp) qui est appelée en boucle depuis une autre (results.jsp) par l'objet XMLHttpRequest pour connaitre l'état d'avancement d'un traitement. La page status renvoie à results une réponse sous forme xml contenant des éléments de réponse (nouveaux résultats obtenus, calcul complet fini...)

Mon soucis : dans la page status, je n'arrive pas à formatter correctement la source.

Si j'écris quelquechose comme :

<%@ page language= "java" import="java.lang.*">
<%
...code qui vérifie le status des calculs et qui renvoie les résultats en xml...
%>

la réponse est bien reçue mais considérée comme malformé (on dirait que les retours à la ligne ne conviennent pas)

Si je fait une requête direct depuis un navigateur, j'obtiens le message d'erreur suivant :

Erreur d'analyse XML : instruction de traitement XML pas au début d'une entité externe
Emplacement : http://monsite.com/status.jsp
Numéro de ligne 2, Colonne 1 :
<?xml version="1.0" encoding="iso-8859-1"?><results><NbResultats>10</NbResultats> 1 </results>
^

Par contre si j'écris (pas de retour à la ligne entre les blocs) :

<%@ page language ="java" import="java.lang.*"><%

...code qui vérifie le status des calculs et qui renvoie les résultats en xml...

%>

la réponse est bien reçue et correctement traitée.

Si je fait une requête direct depuis un navigateur, j'obtiens bien ma réponse :


<?xml version="1.0" encoding="iso-8859-1"?>
<results>
<NbResultats>10</NbResultats>
1
</results>

Quelqu'un sait-il d'où peut venir le problème ?
Merci.
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention - 16 juil. 2007 à 19:41
3
Merci
Ca venait de la ligne <?xml version="1.0" encoding="iso-8859-1"?>
En enlevant l'instruction qui crée cette ligne, tout marche.

J'avais une instruction qui faisait :
response.setContentType("text/xml; charset=ISO-8859-1");

puis une autre qui faisait :
out.write("<?xml version="1.0" encoding="iso-8859-1"?>");

Je voulais faire bien, dans les normes et tout le toutim.
Mais en enlevant le prologue du fichier xml et en ne concervant que le contentType, ça passe.

Si quelqu'un voit pourquoi...
Sinon je déclare que les normes c'est porte nawak...

Merci cs_AlexN 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cs_AlexN
Meilleure réponse
cs_AlexN 719 Messages postés lundi 5 décembre 2005Date d'inscription 8 janvier 2014 Dernière intervention - 17 juil. 2007 à 11:15
3
Merci
J'ai compris pourquoi pour ceux que ça interresse :
Il faut placer le prologue au tout début de la jsp, c'est plus propre, dans la mesure où certains taglib généraient des caractères blancs, Le xml était considéré comme invalide. Le problème est similaire à celui des header en php (la génération de header doit être fait en tout début de fichier pour éviter la production de caractères blancs).

Merci cs_AlexN 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 99 internautes ce mois-ci

Commenter la réponse de cs_AlexN

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.