W3C home > Mailing lists > Public > public-ws-addressing@w3.org > October 2005

Re: New Issue: What to do when SOAPAction and Default Action Pattern conflict?

From: Katy Warr <katy_warr@uk.ibm.com>
Date: Tue, 11 Oct 2005 12:34:32 +0100
To: Anish Karmarkar <Anish.Karmarkar@oracle.com>, ian.springer@hp.com
Cc: Jonathan Marsh <jmarsh@microsoft.com>, public-ws-addressing@w3.org
Message-ID: <OFD8B9CA56.CCE3452A-ON80257097.003F15AF-80257097.003F96AB@uk.ibm.com>
Ian, Anish
I agree that this is a good point that I hadn't considered in the original 
email.  The first problem that we need to solve is what the correct WSA 
behaviour is when the SOAPAction is not a valid URI.
Thanks
Katy



Anish Karmarkar <Anish.Karmarkar@oracle.com> 
10/10/2005 21:48

To
"Springer, Ian P." <ian.springer@hp.com>
cc
Katy Warr/UK/IBM@IBMGB, Jonathan Marsh <jmarsh@microsoft.com>, 
public-ws-addressing@w3.org
Subject
Re: New Issue: What to do when SOAPAction and Default Action Pattern 
conflict? it






Ian,

Good point. But this is a problem regardless of Katy's suggestion. 
Currently the specs says that either SOAPAction and wsa:Action should be 
the same or SOAPAction should be empty. If SOAPAction is not a valid URI 
(in WSDL), then the message either cannot conform to WSA 1.0 or cannot 
conform to the WSDL SOAP binding.

-Anish
--

Springer, Ian P. wrote:
> What about the case where soapAction is not a valid URI? Using it as the
> default value for wsaw:Action, you end with an invalid wsa:Action (i.e.
> that is not a valid xsd:anyURI).
> 
> 
> ________________________________
> 
>                From: public-ws-addressing-request@w3.org
> [mailto:public-ws-addressing-request@w3.org] On Behalf Of Katy Warr
>                Sent: Monday, October 10, 2005 4:06 PM
>                To: Jonathan Marsh; public-ws-addressing@w3.org
>                Subject: RE: New Issue: What to do when SOAPAction and 
Default
> Action Pattern conflict? it
> 
> 
> 
>                Jonathan 
>                I don't think it's sufficient because: 
>                - Folk may not wish/be in a position to refresh their 
WSDL with
> the wsaw:Action 
>                - Why mandate the duplication of the same piece of 
information
> in the service description when we can deduce it? 
>                I don't think that this complicates things - for users of
> WS-Addressing it should make things easier. 
>                Katy 
> 
> 
> 
> 
> "Jonathan Marsh" <jmarsh@microsoft.com> 
> 
> 10/10/2005 18:46 
> 
> To
> Katy Warr/UK/IBM@IBMGB, <public-ws-addressing@w3.org> 
> cc
> Subject
> RE: New Issue: What to do when SOAPAction and Default Action Pattern
> conflict? it
> 
> 
> 
> 
> 
> 
>                The currently available solution is to add wsaw:Action
> explicitly whenever you have a soapAction.  Isn't that a sufficient
> answer?  Perhaps we could simply remind people of this solution.
> Complicating our action defaulting algorithm further (by making it
> depend on information in another namespace) seems to me to likely be
> more confusing in the long run. 
> 
> 
> ________________________________
> 
> 
>                From: public-ws-addressing-request@w3.org
> [mailto:public-ws-addressing-request@w3.org] On Behalf Of Katy Warr
>                Sent: Monday, October 10, 2005 8:57 AM
>                To: public-ws-addressing@w3.org
>                Subject: New Issue: What to do when SOAPAction and 
Default
> Action Pattern conflict? 
> 
> 
>                I'd like to raise this as an issue. thanks 
> 
>                ----- Forwarded by Katy Warr/UK/IBM on 10/10/2005 16:56 
----- 
> 
> 
> Pete Hendry <peter.hendry@capeclear.com> 
> Sent by: public-ws-addressing-request@w3.org 
> 
> 08/10/2005 04:58 
> 
> 
> 
> To
> Katy Warr/UK/IBM@IBMGB 
> cc
> public-ws-addressing@w3.org 
> Subject
> Re: What to do when SOAPAction and Default Action Pattern conflict?
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
> 
>                We have already seen this problem where the requirement 
is to
> take an already existing service and allow asynchronous calls against
> request-response operations (actually, we already did async in a
> proprietary config-file type way and now want to use WS-Addressing to
> achieve the same thing with old WSDLs).
> 
>                I would agree with Katy that defaulting the input 
wsa:Action to
> the SOAPAction if present would solve this problem. The output and fault
> actions could keep their current defaults (I assume it is only the input
> wsa:Action that has to match SOAPAction).
> 
>                Pete
> 
> 
>                Katy Warr wrote: 
> 
>                What is the correct behaviour for gen'ing wsa:Action in 
the
> client when the HTTP 1.1 SOAPAction is set ( i.e. not "") and there is
> no wsaw:Action explicitly specified in the WSDL? 
> 
>                The problem is that, the default action pattern for 
wsa:Action
> cannot be gauranteed to generate a wsa:action to match SOAPAction. 
> 
>                Here is an example to illustrate: 
> 
>                <binding name="StockQuoteSoapBinding"
> type="tns:StockQuotePortType"> 
>                <soap:binding <soap:binding>  style="document"
> transport="http://schemas.xmlsoap.org/soap/http"
> <http://schemas.xmlsoap.org/soap/http>  /> 
>                <wsaw:UsingAddressing wsdl:required="true" /> 
>                <operation name="GetLastTradePrice"> 
>                  <soap:operation <soap:operation>
> soapAction="http://example.com/GetLastTradePrice"
> <http://example.com/GetLastTradePrice>  /> 
>                  <input> 
>                    <soap:body <soap:body>  use="literal" /> 
>                  </input> 
>                  <output> 
>                    <soap:body <soap:body>  use="literal" /> 
>                  </output> 
>                </operation> 
>                </binding> 
> 
>                If we use the default action pattern to generate the 
wsa:Action,
> this is the result for the input operation 
>                
http://example.com/StockQuotePortType/GetLastTradePriceInput
> <http://example.com/StockQuotePortType/GetLastTradePriceInput> 
>                As this is not  the same as the SOAPAction, this will 
cause
> non-compliance.  The WSDL in this case is implicitly inconsistent with
> the wsa spec - a problem which will occur in every existing WSDL 1.1 in
> which the values of SOAPAction have not been constructed according to
> the default action pattern. 
> 
>                A possible solution is to set the wsa:Action header to
> SOAPAction (if SOAPAction =! "") in preference to using the default
> action pattern (if the wsa:Action is not specified explicitly). 
> 
>                This would means a change something like this in the wsdl 
spec: 
> 
>                4.3 Default Action  Pattern for WSDL 1.1 
>                In the absence of the wsa:Action attribute.... 
>                ==>When using the SOAP 1.1 HTTP binding, if the 
SOAPAction is
> set, the action for inputs and outputs MUST be the same as this and the
> default action pattern is not used. <== 
> 
> 
> 
> ent-Type: text/html;
>                charset="us-ascii"
> Content-Transfer-Encoding: quoted-printable
> 
> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
> <HTML><HEAD>
> <META http-equiv=Content-Type content="text/html; charset=us-ascii">
> <META content="MSHTML 6.00.2900.2722" name=GENERATOR></HEAD>
> <BODY>
> <DIV dir=ltr align=left><SPAN class=747291120-10102005><FONT face=Arial 
> color=#0000ff size=2>What about the case where soapAction is not a valid 

> URI?&nbsp;Using it as the default value for wsaw:Action, you end with an 

> invalid&nbsp;wsa:Action (i.e. that is not a valid 
> xsd:anyURI).</FONT></SPAN></DIV><BR>
> <BLOCKQUOTE dir=ltr 
> style="PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #0000ff 2px 
solid; MARGIN-RIGHT: 0px">
>   <DIV class=OutlookMessageHeader lang=en-us dir=ltr align=left>
>   <HR tabIndex=-1>
>   <FONT face=Tahoma size=2><B>From:</B> 
public-ws-addressing-request@w3.org 
>   [mailto:public-ws-addressing-request@w3.org] <B>On Behalf Of </B>Katy 
>   Warr<BR><B>Sent:</B> Monday, October 10, 2005 4:06 PM<BR><B>To:</B> 
Jonathan 
>   Marsh; public-ws-addressing@w3.org<BR><B>Subject:</B> RE: New Issue: 
What to 
>   do when SOAPAction and Default Action Pattern conflict? 
> it<BR></FONT><BR></DIV>
>   <DIV></DIV><BR><FONT face=sans-serif size=2>Jonathan</FONT> <BR><FONT 
>   face=sans-serif size=2>I don't think it's sufficient because:</FONT> 
<BR><FONT 
>   face=sans-serif size=2>- Folk may not wish/be in a position to refresh 
their 
>   WSDL with the wsaw:Action</FONT> <BR><FONT face=sans-serif size=2>- 
Why 
>   mandate the duplication of the same piece of information in the 
service 
>   description when we can deduce it?</FONT> <BR><FONT face=sans-serif 
size=2>I 
>   don't think that this complicates things - for users of WS-Addressing 
it 
>   should make things easier. </FONT><BR><FONT face=sans-serif 
size=2>Katy</FONT> 
>   <BR><BR><BR><BR>
>   <TABLE width="100%">
>     <TBODY>
>     <TR vAlign=top>
>       <TD width="40%"><FONT face=sans-serif size=1><B>"Jonathan Marsh" 
>         &lt;jmarsh@microsoft.com&gt;</B> </FONT>
>         <P><FONT face=sans-serif size=1>10/10/2005 18:46</FONT> </P>
>       <TD width="59%">
>         <TABLE width="100%">
>           <TBODY>
>           <TR>
>             <TD>
>               <DIV align=right><FONT face=sans-serif 
size=1>To</FONT></DIV>
>             <TD vAlign=top><FONT face=sans-serif size=1>Katy 
>               Warr/UK/IBM@IBMGB, 
&lt;public-ws-addressing@w3.org&gt;</FONT> 
>           <TR>
>             <TD>
>               <DIV align=right><FONT face=sans-serif 
size=1>cc</FONT></DIV>
>             <TD vAlign=top>
>           <TR>
>             <TD>
>               <DIV align=right><FONT face=sans-serif 
size=1>Subject</FONT></DIV>
>             <TD vAlign=top><FONT face=sans-serif size=1>RE: New Issue: 
What to 
>               do when SOAPAction and Default Action Pattern conflict? 
>           it</FONT></TR></TBODY></TABLE><BR>
>         <TABLE>
>           <TBODY>
>           <TR vAlign=top>
>             <TD>
> <TD></TR></TBODY></TABLE><BR></TR></TBODY></TABLE><BR><BR><BR><FONT 
>   face=Tahoma color=blue size=2>The currently available solution is to 
add 
>   wsaw:Action explicitly whenever you have a soapAction. 
&nbsp;Isn&#8217;t that a 
>   sufficient answer? &nbsp;Perhaps we could simply remind people of this 

>   solution. &nbsp;Complicating our action defaulting algorithm further 
(by 
>   making it depend on information in another namespace) seems to me to 
likely be 
>   more confusing in the long run.</FONT> <BR><FONT face=Tahoma 
color=blue 
>   size=2>&nbsp;</FONT> 
>   <DIV align=center><BR>
>   <HR>
>   </DIV><BR><FONT face=Tahoma size=2><B>From:</B> 
>   public-ws-addressing-request@w3.org 
>   [mailto:public-ws-addressing-request@w3.org] <B>On Behalf Of </B>Katy 
>   Warr<B><BR>Sent:</B> Monday, October 10, 2005 8:57 AM<B><BR>To:</B> 
>   public-ws-addressing@w3.org<B><BR>Subject:</B> New Issue: What to do 
when 
>   SOAPAction and Default Action Pattern conflict?</FONT> <BR><FONT 
>   face="Times New Roman" size=3>&nbsp;</FONT> <BR><FONT face=sans-serif 
>   size=2><BR>I'd like to raise this as an issue. thanks</FONT><FONT 
>   face="Times New Roman" size=3> <BR></FONT><FONT face=sans-serif 
color=#800080 
>   size=1><BR>----- Forwarded by Katy Warr/UK/IBM on 10/10/2005 16:56 
>   -----</FONT><FONT face="Times New Roman" size=3> </FONT>
>   <P>
>   <TABLE width="100%">
>     <TBODY>
>     <TR vAlign=top>
>       <TD width="40%"><FONT face=sans-serif size=1><B>Pete Hendry 
>         &lt;peter.hendry@capeclear.com&gt;</B> <BR>Sent by: 
>         public-ws-addressing-request@w3.org</FONT><FONT face="Times New 
Roman" 
>         size=3> </FONT>
>         <P><FONT face=sans-serif size=1>08/10/2005 04:58</FONT><FONT 
>         face="Times New Roman" size=3> </FONT></P>
>       <TD width="59%"><BR>
>         <TABLE width="100%">
>           <TBODY>
>           <TR>
>             <TD width="12%">
>               <DIV align=right><FONT face=sans-serif 
size=1>To</FONT></DIV>
>             <TD vAlign=top width="87%"><FONT face=sans-serif size=1>Katy 

>               Warr/UK/IBM@IBMGB</FONT><FONT face="Times New Roman" 
size=3> 
>               </FONT>
>           <TR>
>             <TD>
>               <DIV align=right><FONT face=sans-serif 
size=1>cc</FONT></DIV>
>             <TD vAlign=top><FONT face=sans-serif 
>               size=1>public-ws-addressing@w3.org</FONT><FONT 
>               face="Times New Roman" size=3> </FONT>
>           <TR>
>             <TD>
>               <DIV align=right><FONT face=sans-serif 
size=1>Subject</FONT></DIV>
>             <TD vAlign=top><FONT face=sans-serif size=1>Re: What to do 
when 
>               SOAPAction and Default Action Pattern 
>         conflict?</FONT></TR></TBODY></TABLE><BR><FONT face="Times New 
Roman" 
>         size=3>&nbsp;</FONT> 
>         <P><BR>
>         <TABLE width="100%">
>           <TBODY>
>           <TR vAlign=top>
>             <TD width="50%"><FONT face="Times New Roman" 
size=3>&nbsp;</FONT> 
>             <TD width="49%"><FONT face="Times New Roman" 
> 
size=3>&nbsp;</FONT></TR></TBODY></TABLE><BR></P></TR></TBODY></TABLE><BR><FONT 

>   face="Times New Roman" size=3><BR><BR><BR>We have already seen this 
problem 
>   where the requirement is to take an already existing service and allow 

>   asynchronous calls against request-response operations (actually, we 
already 
>   did async in a proprietary config-file type way and now want to use 
>   WS-Addressing to achieve the same thing with old WSDLs).<BR><BR>I 
would agree 
>   with Katy that defaulting the input wsa:Action to the SOAPAction if 
present 
>   would solve this problem. The output and fault actions could keep 
their 
>   current defaults (I assume it is only the input wsa:Action that has to 
match 
>   SOAPAction).<BR><BR>Pete<BR><BR><BR>Katy Warr wrote: </FONT><FONT 
>   face=sans-serif size=2><BR><BR>What is the correct behaviour for 
gen'ing 
>   wsa:Action in the client when the HTTP 1.1 SOAPAction is set ( i.e. 
not "") 
>   and there is no wsaw:Action explicitly specified in the WSDL? 
>   &nbsp;</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
face=sans-serif 
>   size=2><BR><BR>The problem is that, the default action pattern for 
wsa:Action 
>   cannot be gauranteed to generate a wsa:action to match 
SOAPAction.</FONT><FONT 
>   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
>   size=2><BR><BR>Here is an example to illustrate:</FONT><FONT 
>   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
>   size=2><BR><BR>&lt;binding name="StockQuoteSoapBinding" 
>   type="tns:StockQuotePortType"&gt;</FONT><FONT face="Times New Roman" 
size=3> 
>   </FONT><FONT face=sans-serif size=2><BR>&lt;</FONT><A 
>   href="soap:binding"><FONT face=sans-serif color=blue 
>   size=2><U>soap:binding</U></FONT></A><FONT face=sans-serif size=2> 
>   style="document" transport=</FONT><A 
>   href="http://schemas.xmlsoap.org/soap/http"><FONT face=sans-serif 
color=blue 
>   size=2><U>"http://schemas.xmlsoap.org/soap/http"</U></FONT></A><FONT 
>   face=sans-serif size=2> /&gt;</FONT><FONT face="Times New Roman" 
size=3> 
>   </FONT><FONT face=sans-serif size=2><BR>&lt;wsaw:UsingAddressing 
>   wsdl:required="true" /&gt;</FONT><FONT face="Times New Roman" size=3> 
>   </FONT><FONT face=sans-serif size=2><BR>&lt;operation 
>   name="GetLastTradePrice"&gt;</FONT><FONT face="Times New Roman" 
size=3> 
>   </FONT><FONT face=sans-serif size=2><BR>&nbsp; &lt;</FONT><A 
>   href="soap:operation"><FONT face=sans-serif color=blue 
>   size=2><U>soap:operation</U></FONT></A><FONT face=sans-serif size=2> 
>   soapAction=</FONT><A href="http://example.com/GetLastTradePrice"><FONT 

>   face=sans-serif color=blue 
>   size=2><U>"http://example.com/GetLastTradePrice"</U></FONT></A><FONT 
>   face=sans-serif size=2> /&gt;</FONT><FONT face="Times New Roman" 
size=3> 
>   </FONT><FONT face=sans-serif size=2><BR>&nbsp; &lt;input&gt; 
<BR>&nbsp; &nbsp; 
>   &lt;</FONT><A href="soap:body"><FONT face=sans-serif color=blue 
>   size=2><U>soap:body</U></FONT></A><FONT face=sans-serif size=2> 
use="literal" 
>   /&gt;</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
face=sans-serif 
>   size=2><BR>&nbsp; &lt;/input&gt; <BR>&nbsp; &lt;output&gt;</FONT><FONT 

>   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
size=2><BR>&nbsp; 
>   &nbsp; &lt;</FONT><A href="soap:body"><FONT face=sans-serif color=blue 

>   size=2><U>soap:body</U></FONT></A><FONT face=sans-serif size=2> 
use="literal" 
>   /&gt;</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
face=sans-serif 
>   size=2><BR>&nbsp; &lt;/output&gt;</FONT><FONT face="Times New Roman" 
size=3> 
>   </FONT><FONT face=sans-serif size=2><BR>&lt;/operation&gt;</FONT><FONT 

>   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
>   size=2><BR>&lt;/binding&gt;</FONT><FONT face="Times New Roman" size=3> 

>   </FONT><FONT face=sans-serif size=2><BR><BR>If we use the default 
action 
>   pattern to generate the wsa:Action, this is the result for the input 
>   operation</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
>   face="Times New Roman" color=blue size=3><U><BR></U></FONT><A 
>   href="http://example.com/StockQuotePortType/GetLastTradePriceInput
"><FONT 
>   face=sans-serif color=blue 
> 
size=2><U>http://example.com/StockQuotePortType/GetLastTradePriceInput</U></FONT></A><FONT 

>   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
size=2><BR>As this 
>   is not &nbsp;the same as the SOAPAction, this will cause 
non-compliance. 
>   &nbsp;The WSDL in this case is implicitly inconsistent with the wsa 
spec - a 
>   problem which will occur in every existing WSDL 1.1 in which the 
values of 
>   SOAPAction have not been constructed according to the default action 
>   pattern.</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
>   face=sans-serif size=2><BR><BR>A possible solution is to set the 
wsa:Action 
>   header to SOAPAction (if SOAPAction =! "") in preference to using the 
default 
>   action pattern (if the wsa:Action is not specified 
explicitly).</FONT><FONT 
>   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
>   size=2><BR><BR>This would means a change something like this in the 
wsdl 
>   spec:</FONT><FONT face="Times New Roman" size=3> </FONT><FONT 
face=sans-serif 
>   size=2><BR><BR>4.3 Default Action &nbsp;Pattern for WSDL 
1.1</FONT><FONT 
>   face="Times New Roman" size=3> </FONT><FONT face=sans-serif 
size=2><BR>In the 
>   absence of the wsa:Action attribute....</FONT><FONT face="Times New 
Roman" 
>   size=3> </FONT><FONT face=sans-serif size=2><BR>==&gt;When using the 
SOAP 1.1 
>   HTTP binding, if the SOAPAction is set, the action for inputs and 
outputs MUST 
>   be the same as this and the default action pattern is not used. 
>   &lt;==</FONT><FONT face="Times New Roman" size=3> 
> </FONT><BR></P></BLOCKQUOTE></BODY></HTML>
> 
Received on Tuesday, 11 October 2005 11:35:03 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Tuesday, 2 June 2009 18:35:09 GMT