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