org.xml.sax.SAXParseException: Content is not allowed in prolog.

org.xml.sax.SAXParseException: Content is not allowed in prolog. - Java - Programmation

Marsh Posté le 04-07-2003 à 12:01:49    

Salut,
 
Bon à chaque fois que je poste sur le forum personne ne me donne la solution... voyons si cette fois ce sera l'exception.
 
Je fais du SOAP over SMTP.
Donc j'envoie ma requête SOAP sur une adresse mail :
code java:
 

Code :
  1. SOAPTransport ss = new org.apache.soap.transport.smtp.SOAPSMTPConnection(
  2.      /* from/replyto address */ myaddress,
  3.      /* subject */ "SOAP SMTP Request (TEST)",
  4.      /* smtpServer */ myserver,
  5.      /* popPollDelay in millis */ 30000,
  6.      /* popServer */ myserver,
  7.      /* popLogin */ mylogin,
  8.      /* popPassword */ mypassword
  9. );
  10.      Call call = new Call();
  11.      call.setSOAPTransport(ss);  // use smtp transport instead of http
  12. call.setEncodingStyleURI(Constants.NS_URI_SOAP_ENC);
  13. call.setTargetObjectURI(myurn);
  14. call.setMethodName(mymethod);
  15. Vector params = new Vector();
  16. params.add(new Parameter("langue", java.lang.String.class,lan_code, null));
  17. if(geo_code!=null)
  18.    params.add(new Parameter("zonegeo", java.lang.String.class, geo_code, null));
  19. call.setParams(params);
  20. URL urls = new URL("mailto:myaddressemail" );
  21. //  URL urls = new URL(refResource.getString("urlSoap" ));
  22. Response resp = call.invoke(urls,"" );


 
=> je reçois bien le mail, j'ai une appli java qui tourne sur mon poste qui scanne la bal et traite le mail => envoie au web service via http classique de la requête soap, et envoie de la réponse soap à la bal destinataire de la réponse (myaddress ci-dessus) => ex de mail réponse :
<?xml version='1.0' encoding='UTF-8'?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<ns1:getCountriesResponse xmlns:ns1="urn:ReferentielWebServices" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<return xmlns:ns2="http://xml.apache.org/xml-soap" xsi:type="ns2:Vector">
<item xsi:type="ns2:Vector">
<item xsi:type="xsd:string">ZA</item>
<item xsi:type="xsd:string">AFRIQUE DU SUD</item>
</item>
<item xsi:type="ns2:Vector">
<item xsi:type="xsd:string">BW</item>
<item xsi:type="xsd:string">BOTSWANA</item>
</item>
<item xsi:type="ns2:Vector">
<item xsi:type="xsd:string">LS</item>
<item xsi:type="xsd:string">LESOTHO</item>
</item>
<item xsi:type="ns2:Vector">
<item xsi:type="xsd:string">NA</item>
<item xsi:type="xsd:string">NAMIBIE</item>
</item>
<item xsi:type="ns2:Vector">
<item xsi:type="xsd:string">SZ</item>
<item xsi:type="xsd:string">SWAZILAND</item>
</item>
</return>
</ns1:getCountriesResponse>
 
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
 
=> jusque là tout marche nickel, là où ça se gatte c'est maintenant car le parserxml n'arrive pas à lire le mail apparemment et me fait l'erreur suivante =>
2003-07-04 11:08:29,388 ERROR 1456125 [Thread-127] - Country : service : [SOAPException: faultCode=SOAP-ENV:Client; msg=Parsing error, response was:
Content is not allowed in prolog.; targetException=org.xml.sax.SAXParseException: Content is not allowed in prolog.]
 
 
Apparemment, ça viendrait de l'encryption du mail...
des idées, qqun a déjà été confronté au problème?

Reply

Marsh Posté le 04-07-2003 à 12:01:49   

Reply

Marsh Posté le 04-07-2003 à 12:30:55    

LeMicky a écrit :

Salut,
<?xml version='1.0' encoding='UTF-8'?>


 
Double quotes ? UTF-16 (tous les parsers ne sont pas d'accord sur ce que permet UTF-8 apparemment) ?
 
<?xml version="1.0" encoding="UTF-8"?>
 
Sinon tu parse bien le contenu du mail (et pas tout le mail) (desole, mais on ne sait jamais)?

Reply

Marsh Posté le 04-07-2003 à 12:32:25    

Kahyman a écrit :


 
Double quotes ? UTF-16 (tous les parsers ne sont pas d'accord sur ce que permet UTF-8 apparemment) ?
 
<?xml version="1.0" encoding="UTF-8"?>
 
Sinon tu parse bien le contenu du mail (et pas tout le mail) (desole, mais on ne sait jamais)?


 
Sinon quelle VM utilises-tu (l'encoding par defaut differe d'une vm a l'autre et d'apres ce que j'ai lu sur differents postes ca posait souvent des problemes dans des cas similaires au tiens)?

Reply

Marsh Posté le 04-07-2003 à 12:34:19    

autre truc, s'il y a un # dans le nom de ce que tu parse, le parser perd les pedalles (c.f. code du reader SAX si mes souvenirs sont bons)

Reply

Marsh Posté le 04-07-2003 à 12:49:34    

LeMicky a écrit :

Bon à chaque fois que je poste sur le forum personne ne me donne la solution... voyons si cette fois ce sera l'exception.


 
la phrase qui donne *vraiment* envie de t'aider  :heink:


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 04-07-2003 à 14:44:01    

Re!
 
Bon, j'utilise la JVM de Microsoft, je suis sur du Win2000 server.
 
En fait, moi-même de mes petites mains je ne parse rien du tout, tout est fait automatiquement par soap lors de l'appel call.invoke(urls,"" ); => il fait tout tout seul comme un grand.
 
Bon là j'ai tripatouillé les options de mon serveur de mail (c'est un Domino 5) et de mes bals et..... ça marche!
Bon le problème étant que je ne suis pas un expert de l'encodage ou de la messagerie, donc je vais attendre que mon architecte messagerie rentre pour lui montrer ce que j'ai tripatouillé pour ne garder que ce qui compte vraiment.
 
Pareil le <?xml version='1.0' encoding='UTF-8'?>  est généré automatiquement par SOAP, je n'ai pas la main dessus (sauf à mettre les mains dans les classes soap et les recompiler).
Par http, ça marche nickel (donc le UTF-8 encoding est à priori ok pour le message SOAP en lui-même).
C'était l'encodage du mail lui-même ou du moins du corps du mail (pour répondre à Kahyman, je pense qu'il ne lit que le corps du message) qui posait problème et pas son contenu (le xml est correct et est bien désarialisé - pour preuve la requête SOAP est lue et interprétée de façon correcte- , le problème était dans la réponse, il me mettait un charset=UTF-8 dans l'entête MIME du corps du message qui n'apparaissait pas dans celui de la requête => c'est la seule différence que j'ai pu constater, donc j'imagine que c'est ce charset qui mettait la grouille.
 
Bon maintenant que ça marche vous allez me dire => regarde l'entête du corps du message réponse! ben heu... le pb est qu'il efface le message dès qu'il l'a traité et du coup je n'ai pas le temps de voir... (faudrait que je retouche à la classe SMTP2HTTP de SOAP pour qu'il n'efface pas le message).
 
 
Merci Kahyman pour ses réponses.
Pour DarkLord, désolé, mais j'ai été assez échaudé par mes précédentes expériences de post sur le forum.
 
A+

Reply

Marsh Posté le 04-07-2003 à 17:06:35    

DarkLord a écrit :


 
la phrase qui donne *vraiment* envie de t'aider  :heink:  


 
Euh... perso je suis partielement d'accord avec lui  :lol: la pluspart des problemes pointus ne trouvent pas ou peu de solution ici (d'ailleurs ce n'est pas ici qu'il faut chercher dans ce cas AMHA, mais sur des forums specialises)
 
Ceci dit la tournure de sa phrase aurait pu etre plus diplomatique et tu aurais pu fermer les yeux sur le cote negatif ;)

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed