I'm currently implementing WS-Addressing in my web service and am a little
confused about the way CXF is populating the wsa:Action property on the
response message.  Our WSDL (provided, not created) defines an input and
output message like this with corresponding wsaw:Action attributes defined:

<wsdl:portType name="myMessage">
...
<wsdl:input message="messageType" wsaw:Action="ns:messageType.version" />
<wsdl:output message="messageType-Response"
wsaw:Action="ns:messageType-Response.version" />
...
</wsdl:portType>

There is also a soapAction defined in the <wsdl:binding> section:
...
<soap:operation soapAction="ns:messageType.version" />
...

>From what I understand, the SOAPAction value is used in the HTTP Request
Header as information to the receiving server endpoint. But on the outbound
message, when populating the wsa:Action field in the outgoing SOAP Headers,
CXF first checks for the soapAction element and if it doesn't find one, it
then looks for the wsaw:Action value defined on the output message.  

I"m not sure if I'm missing something, but this seems backwards. I'm
defining an explicit value for the Action on the response message but it
first looks to the soapAction which I don't think should really apply to the
outbound message.

The only way I can get it to select my explicitly defined wsaw:Action value
on the output is to remove the soapAction attribute from the WSDL (or set it
to empty string). However, this isn't an option going forward as we are not
the authors of the WSDL.  

Is it possible that CXF has implemented this wrong and has the action
look-up backwards?  

Thanks in advance, any help/ideas/insight is appreciated.


-- 
View this message in context: 
http://old.nabble.com/WSDL-wsaw%3AAction-vs-soapAction-in-MAPs-on-the-response-message-tp26545030p26545030.html
Sent from the cxf-user mailing list archive at Nabble.com.

Reply via email to