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/>