Jochen Riedlinger created CAMEL-13357:
-----------------------------------------

             Summary: CLONE - Namespaces defined on the SOAP envelope get lost 
in PAYLOAD mode
                 Key: CAMEL-13357
                 URL: https://issues.apache.org/jira/browse/CAMEL-13357
             Project: Camel
          Issue Type: Bug
          Components: camel-cxf
            Reporter: Jochen Riedlinger
            Assignee: Akitoshi Yoshida
             Fix For: 2.16.0


If a request message is send to a CXF consumer or a response is returned to the 
CXF provider that contains namespace definions at the SOAP envelope and the 
Camel-CXF endpoint is configured in PAYLOAD mode the namespace definition gets 
lost unless streaming is disabled.

If the resulting CxfPayload is then converted e.g. to String that String will 
contain invalid XML (because some namespace definition is missing).

For non-streaming mode (system property 
org.apache.camel.component.cxf.streaming is set to false) there are special 
precautions met to set these envelope namespaces on the first DOM element of 
the payload but this coding is missing for StAX.

The messages in question look like that:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xmlns:xs="http://www.w3.org/2001/XMLSchema";>
  <soap:Body>
    <ns2:getTokenResponse xmlns:ns2="http://camel.apache.org/cxf/namespace";>
      <return xsi:type="xs:string">Return Value</return>
    </ns2:getTokenResponse>
  </soap:Body>
</soap:Envelope>

If the CxfPayload is converted to String it will lack the definition for the 
xsi namespace prefix (and further XML parsing will fail).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to