Hi,
As an experiment, I have written a client handler that is like:
public void invoke(MessageContext msgContext) throws AxisFault {
SOAPMessage msg = msgContext.getMessage();
SOAPEnvelope env = (SOAPEnvelope) msg.getSOAPPart().getEnvelope();
Document doc = env.getAsDocument();
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
factory.setNamespaceAware(true);
//msgContext.getMessage().getSOAPPart().setContent(
// new DOMSource(doc));
msg = msgContext.getMessage();
msg.writeTo(System.out);
}
The output is shown below:
<?xml version="1.0" encoding="UTF-8"?>
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:concat soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mo.org.cpttm.stringservice">
<ns1:arg0 xsi:type="xsd:string">abc</ns1:arg0>
<ns1:arg1 xsi:type="xsd:string">def</ns1:arg1>
</ns1:concat>
</soapenv:Body>
</soapenv:Envelope>
If I uncomment the line, then the output becomes:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:concat soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:mo.org.cpttm.stringservice">
<ns1:arg0 xsi:type="xsd:string"> abc </ns1:arg0>
<ns1:arg1 xsi:type="xsd:string"> def </ns1:arg1>
</ns1:concat>
</soapenv:Body>
</soapenv:Envelope>
That is, it adds a lot of newlines and spaces. It even changes the argument of the soap call from "abc" to "abc ". Any idea?
Thanks!