[ https://issues.apache.org/jira/browse/CAMEL-7921?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14736939#comment-14736939 ]
Ton Swieb commented on CAMEL-7921: ---------------------------------- Hi [~ffang], Thanks for fixing this. > The soapAction HTTP header is not correctly set when running the CXF client > in POJO mode using Camel > ---------------------------------------------------------------------------------------------------- > > Key: CAMEL-7921 > URL: https://issues.apache.org/jira/browse/CAMEL-7921 > Project: Camel > Issue Type: Bug > Components: camel-cxf > Affects Versions: 2.12.3, 2.12.4, 2.13.2, 2.14.0 > Reporter: Ton Swieb > Assignee: Freeman Fang > Fix For: 2.16.0, 2.14.4, 2.15.4 > > Attachments: soapActionTest.zip > > > The soapAction HTTP header is not correctly set when running the CXF client > in POJO mode using Camel. > The root cause seems to be that the service name from the generated service > class differs from the service name in the WSDL. > For me it is unclear if this should be an issue with the cxf-codegen-plugin > or with the Camel CXF component. When running the CXF client without Camel > then the soapAction HTTP header is correctly set and the issue does not > occur. So that's why I first report the bug with Camel. > Possible workarounds I found are: > 1) Explicitly specifying the correct serviceName as CXF endpoint attribute. > 2) Explicitly setting the soapAction header in the Camel route prior to > calling the CXF endpoint. > Both workarounds are not desirable, because they are easily forgotten and CXF > does not throw an exception when you do. According to the basic profile v1.0 > the soapAction HTTP header must match the value in the WSDL and receiving > SOAP servers may throw a SOAP Fault if it doesn't. Some SOAP servers do throw > an exception when the soapAction HTTP header is invalid. Resulting in > communication failures between some SOAP client/server combinations. > I created a test project to verify the above behaviour with the following > tests: > 1) CXF in PAYLOAD with Camel. => OK > 2) CXF in POJO mode without Camel => OK > 3) CXF in POJO mode with Camel => *NOT OK* > 4) CXF in POJO mode with service name set => OK > 5) CXF in POJO mode with soapAction set => OK > I run the test project with multiple combinations of Camel and CXF. The > following combinations I have tried: > 1) Camel 2.12.3 and CXF 2.7.10 (Apache Servicemix 5.0.0 setup) > 2) Camel 2.12.4 and CXF 2.7.11 (Apache Servicemix 5.0.5 setup) > 3) Camel 2.13.2 and CXF 2.7.11 (Apache Servicemix 5.1.3 and 5.3.0 setup) > 4) Camel 2.14.0 and CXF 3.0.1 > In the example project the mismatch occurs between an annotation in the > generated service class: > {code} > @WebService(targetNamespace = "http://finalist.nl/ai/", name = > "ICamelCxfTestService") > {code} > and the definition of the service name in the WSDL: > {code} > <wsdl:service name="CamelCxfTestService"> > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)