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

Reply via email to