Thanks for the suggestion, issue solved, some details:

1) WebMethod annotations has the proper action parameter
2) in my implementation wsdlLocation is set to "classpath:original.wsdl"

step to solve:

1) I removed the wsdlLocation from @WebService annotation in my implementation 2) I added wsdlLocation in my pom.xml pointing to the same path previously defined in WebService annotation,

thanks
Nicola

Il 13/05/2014 16:57, Daniel Kulp ha scritto:

If you have the WSDL, why are you not deploying the service using the WSDL. I think for your case, make sure the @WebService annotation has an appropriate wsdlLocation attribute. If the WSDL is available, it should use it directly and not have to generate a new annotation.

Can you check the generated code to make sure the @WebMethod annotations have the appropriate action parameter? It should be pulling the action from there so it's either a code generation issue or possibly a runtime issue if it's not finding it. Would like to see a test case.

Dan



On May 8, 2014, at 4:31 AM, Mailing List SVR <[email protected] <mailto:[email protected]>> wrote:

Hi,

I'm generating a service from an existing wsdl (original.wsdl attached), after creating the service the generated wsdl has some small difference from the original one (cxf_generated.wsdl attached), if I create client methods (using for example soapui) from the cxf generated wsdl all is fine but if I use the original wsdl the requests they fail with the error:

"the given soapaction does not match an operation"

the problem is the SOAPAction http header, cxf expects no SOAPAction header or an empty one, if you look at the wsdl generated by cxf you can see a section not present in the original wsdl that define an empty soap action:

<soap:operationsoapAction=""style="document"/>

after this section there is also the original one that define:

<soap:operationsoapAction="http://test.example.com//updateList"/>

I defined an interceptor that remove the SOAPAction http header if present and this workaround what seems a cxf bug to me.

Obviously if someone give you a wsdl it use that wsdl to generate client methods and not redownload the wsdl from your service.

What do you think about? Is this a cxf bug? Why cxf modify the original wsdl used to generate java code?


thanks
Nicola

P.S. tested with both cxf 2.7.8 and 2.7.11
<cxf_generated.wsdl><original.wsdl>

--
Daniel Kulp
[email protected] <mailto:[email protected]> - http://dankulp.com/blog
Talend Community Coder - http://coders.talend.com <http://coders.talend.com/>


Reply via email to