Rebecca, On Tue January 26 2010 5:12:34 pm rduhard wrote: > Logged an issue in Jira with potential patch. See > https://issues.apache.org/jira/browse/CXF-2629
Just to let you know that I looked at this a bit last night. With your patch, a BUNCH of the WS-RM related system tests fail. I think it's a bug in the way WS-RM is setting up it's service model, but I need to dig in more to figure out what is going on with it. That's basically the cause of the delay in applying the patch. Dan > Rebecca > > dkulp wrote: > > On Fri December 4 2009 11:15:27 am rduhard wrote: > >> I think that the following line of code might be the culprit: (via the > >> MAPAggregator interceptor) > >> > >> ContextUtils.getActionFromServiceModel(Message, Exception): > >> line: 722 action = (String) > > > > message.get(SoapBindingConstants.SOAP_ACTION); > > > >> When setting up the outgoing headers, it looks to create the Action from > >> the service model. Oddly, it looks first to find if there is a > >> SOAPAction > >> defined for the Message, and if not moves on to the wsaw:Action field. > >> I would argue that the line looking to the SOAPAction value be removed > >> entirely as it's not an applicable value for a response message. > >> > >> Does this sound right? if so I can submit a patch to get it fixed asap. > > > > For the response, yes. That does sound correct. > > > > Dan > > > >> Rebecca > >> > >> dkulp wrote: > >> > Actually, the OTHER problem is that we're even setting a SOAPAction on > >> > the response message. That's really not needed. Thus, that MAY be > >> > >> the > >> > >> > real bug. If that wasn't set, then it wouldn't find it and thus it > >> > would use the > >> > Action header. > >> > > >> > Dan > >> > > >> > On Thu December 3 2009 2:58:04 pm Daniel Kulp wrote: > >> >> On Wed December 2 2009 11:41:45 pm Craig Tataryn wrote: > >> >> > Anyone have an inkling as to whether CXF is interpreting the spec > >> >> > correctly on this? Essentially we have an explicit wsaw:Action > >> >> > specified on a response message, yet because there is a soapAction > >> > >> set > >> > >> >> > in the binding the wsaw:Action is ignored and replaced with the > >> > >> value > >> > >> >> > of the soapAction. > >> >> > >> >> Yea. This does seem backwords. Checked the spec: > >> >> > >> >> http://www.w3.org/TR/2006/CR-ws-addr-wsdl-20060529/#actioninwsdl > >> >> > >> >> "WS-Addressing defines a global attribute, wsaw:Action, that can be > >> > >> used > >> > >> >> to > >> >> explicitly define the value of the [action] property for messages in > >> >> a WSDL > >> >> description. The type of the attribute is xs:anyURI and it is used as > >> > >> an > >> > >> >> extension on the WSDL input, output and fault elements. A SOAP > >> >> binding can > >> >> specify SOAPAction values for the input messages of operations. In > >> >> the absence of a wsaw:Action attribute on a WSDL input element where > >> >> a SOAPAction value is specified, the value of the [action] property > >> >> for the > >> >> input message is the value of the SOAPAction specified." > >> >> > >> >> Thus, if that is what's occuring, it's backwords. > >> >> > >> >> I think the problem stems from : > >> >> http://www.w3.org/TR/2006/REC-ws-addr-soap-20060509/ > >> >> which states that for SOAP 1.1, the SOAPAction and Action header have > >> > >> to > >> > >> >> match. If not, a fault needs to be thrown. Thus, we grab the > >> >> SOAPAction. However, we should be resetting the SOAPAction to the > >> >> Action. > >> >> (although, if you are using SOAP 1.1, I would probably argue that > >> > >> your > >> > >> >> wsdl is then "not correct" and the SOAPAction and Action should be > >> > >> set > >> > >> >> to > >> >> the same) > >> >> > >> >> > >> >> Dan > >> >> > >> >> > Thanks, > >> >> > > >> >> > Craig. > >> >> > > >> >> > On Fri, Nov 27, 2009 at 10:54 AM, rduhard <[email protected]> wrote: > >> >> > > 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-r > >> > >> >> > >es ponse-message-tp26545030p26545030.html Sent from the cxf-user > >> >> > >> >> mailing > >> >> > >> >> > > list archive at Nabble.com. > -- Daniel Kulp [email protected] http://www.dankulp.com/blog
