SOAP 2.3.1 and Internationalization
Clive Jordan <[email protected]> Thu, 16 Jun 2005 10:49:14 +0100
| Newsgroups | gmane.text.xml.soap.user |
|---|---|
| Message-ID | <[email protected]> |
Hi Guys, Apologies if you have seen this question many times before... I am using Apache SOAP 2.3.1 with JDK 1.4 running on AIX 5.2. All is setup and working ok. If I send a simple xml into message into the system, all is fine. Each message starts: <?xml version="1.0" encoding="UTF-8" ?> We are now required to send data that contains non-ascii characters (specifically, european accented letters). These are only in the tag data, not the tags themselves. So I changed the message header to: <?xml version="1.0" encoding="iso-8859-1" ?> This works fine. Now the xml data was change to include an accented letter ( passÃxx). When I send this data into the server, I get the following response: <?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> <SOAP-ENV:Fault> <faultcode>SOAP-ENV:Client</faultcode> <faultstring>parsing error: org.xml.sax.SAXParseException: XML document structures must start and end within the same entity.</faultstring> <faultactor>/soap/servlet/messagerouter</faultactor> </SOAP-ENV:Fault> </SOAP-ENV:Body> </SOAP-ENV:Envelope> This is being generated by the SOAP layer before it gets to the web service. I have written a simple java program that parses theis file using the built-in JAXP and that works fine. So I assume that the SOAP layer is using an older parser that does not upport internationalization? I cannot find xerces in any of the tomcat library directories so I am puzzeled as to which parser is being used. Is there a way I can find out what parser is being used and can I slide in a newer one ? Upgrading to Axis is not an option. Any help gratefully received. Thanks, Clive