CXF's Provider service using the payload data-format may not transfer the 
payload correctly
-------------------------------------------------------------------------------------------

                 Key: CAMEL-3927
                 URL: https://issues.apache.org/jira/browse/CAMEL-3927
             Project: Camel
          Issue Type: Bug
          Components: camel-cxf
    Affects Versions: 2.7.1
            Reporter: Aki Yoshida
             Fix For: 2.8.0


When using the Provider based service (i.e., one using the Provider<Source>'s 
invoke(Source m) signature), I observed that the payload content is not 
correctly extracted in the first call. The reason seems to be that the content 
is passed as a StaxSource instance to the camel's cxf binding component 
(DefaultCxfBinding) and this expects currently a DOMSource for the payload data 
format and therefore it not able to extract the payload content.

Some more information is described in a related mail thread at camel-user 
http://camel.465427.n5.nabble.com/Question-on-RemoveClassTypeInterceptor-in-Camel-Cxf-s-Payload-mode-td4358188.html

This problem can be reproduced using CxfConsumerProviderTest when this test is 
executed using the payload data format. I suppose this test should actually be 
executed in the payload data format mode. But this is currently not the case.

So, I am attaching the modified CxfConsumerProviderTest that uses the payload 
data format. This test will fail with the current trunk camel-cxf 
implementation. I am also attatching the patch file of the suggested change in 
DefaultCxfBinding that can resolve this issue and successfully pass this test.

I think we can eventually consider a different CxfPayload implementation that 
does not require a DOM object at all. But for now, I think we can live with 
this correction to avoid this payload extraction issue.

Thanks.
Regards, Aki




--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to