javax.xml.soap.SOAPMessage loses HTTP header information when passing through 
CXF Interceptors
----------------------------------------------------------------------------------------------

                 Key: CXF-1914
                 URL: https://issues.apache.org/jira/browse/CXF-1914
             Project: CXF
          Issue Type: Bug
          Components: Core
    Affects Versions: 2.1.3
         Environment: Any
            Reporter: Jason Royals


We are using Camel with CXF to enable a lightwight ESB-like integration 
solution.  One of the services we are proxying requires a binary Soap 
attachment and so we need to consume and resend the multipart HTTP request, and 
the headers to support it.

We pass in a HTTP request with the following headers:
 Content-Length: 221357
 SOAPAction: ""
 Content-Type: multipart/related; type="application/xop+xml"; start="<[EMAIL 
PROTECTED]>"; start-info="text/xml"; 
boundary="----=_Part_3_21579068.1226633091650" 
 MIME-Version: 1.0

But when Camel gets it, the headers have been discarded and replaced with only 
"Content-Type: text/xml; charset=utf-8"

After a few hours debugging, the problem seems to be that:

* DispatchInDatabindingInterceptor creates the java.xml.soap.SOAPMessage 
correctly using the InputStream from the request, and adds it to a 
org.apache.cxf.message.Message object
* DispatchInDatabindingInterceptor$PostDispatchSOAPHandlerInterceptor removes 
the SOAPMessage object from org.apache.cxf.message.Message and converts it into 
a javax.xml.transform.Source, and puts that into the 
org.apache.cxf.message.Message object
* DispatchInDatabindingInterceptor$PostDispatchLogicalHandlerInterceptor 
removes the javax.xml.transform.Source and re-creates the 
java.xml.soap.SOAPMessage again using the Source, and puts it into the 
org.apache.cxf.message.Message object

Converting to a Source loses the original header information, so the new 
SOAPMessage created from that Source only has the default headers. This is a 
problem for us, and others requiring the HTTP headers to be passed through 
intact from CXF.

If I get some time on the weekend I'll write a test to expose it. 

Thanks!


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to