[
https://issues.apache.org/jira/browse/AXIOM-430?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Andreas Veithen resolved AXIOM-430.
-----------------------------------
Resolution: Fixed
Fix Version/s: 1.2.15
Assignee: Andreas Veithen
> Inconsistent serialization of SOAPEnvelope
> ------------------------------------------
>
> Key: AXIOM-430
> URL: https://issues.apache.org/jira/browse/AXIOM-430
> Project: Axiom
> Issue Type: Bug
> Components: DOOM, LLOM
> Affects Versions: 1.2.13
> Reporter: Andreas Veithen
> Assignee: Andreas Veithen
> Priority: Minor
> Fix For: 1.2.15
>
>
> The SOAPEnvelopeImpl#internalSerialize method contains code that skips the
> serialization of the SOAP header if it is empty. Presumably this code is
> there because SOAPFactory#getDefaultEnvelope() always creates a SOAP header,
> but one doesn't want that header to appear in the output if there are no
> header blocks. However, this only works when the SOAPEnvelope is serialized
> to an XMLStreamWriter, OutputStream or Writer. The header is still present in
> the sequence of events produced by getXMLStreamReader or getSAXSource. This
> can be shown using the following piece of code:
> {code:java}
> SOAPFactory factory = OMAbstractFactory.getSOAP11Factory();
> SOAPEnvelope envelope = factory.getDefaultEnvelope();
> factory.createOMElement(new QName("urn:test", "test", "p"),
> envelope.getBody());
> envelope.serialize(System.out);
> System.out.println();
> TransformerFactory.newInstance().newTransformer().transform(envelope.getSAXSource(true),
> new StreamResult(System.out));
> {code}
> The output is:
> {code:xml}
> <?xml version='1.0' encoding='utf-8'?><soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><p:test
> xmlns:p="urn:test"/></soapenv:Body></soapenv:Envelope>
> <?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope
> xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Header/><soapenv:Body><p:test
> xmlns:p="urn:test"/></soapenv:Body></soapenv:Envelope>
> {code}
> In addition to that, SOAPEnvelopeImpl#internalSerialize also skips
> serialization of whitespace and comments.
--
This message was sent by Atlassian JIRA
(v6.2#6252)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]