ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value

Need a SOAP 1.2-specific SOAP/JMS transport URL value

State:
CLOSED
Product:
SOAP-JMS Binding specification
Raised by:
Phil Adams
Opened on:
2010-11-22
Description:
Currently, the SOAP/JMS binding spec defines a single value (http://www.w3.org/2010/soapjms/) to be used as the soap:binding transport URL to indicate that the WSDL binding supports SOAP/JMS (see section 3.3.2 of the binding spec). According to the spec, this single value should be used for both SOAP 1.1 and SOAP 1.2. [Also, it seems that it is merely a coincidence that this transport URL value is the same as the soapjms binding namespace value, although they don't need to be the same value. My point is that the value "http://www.w3.org/2010/soapjms/" seems to be serving double duty - it is the soapjms binding namespace value *and* it is also the soap:binding transport URL value that indicates that SOAP over JMS is being used.]

If one restricts their view to only the WSDL document, then this approach works fine, as the soap version associated with the actual binding itself can be used to determine which version of SOAP is being used. For example, if the soap:binding element name refers to the SOAP 1.1 namespace, then the binding indicates SOAP 1.1, and if the soap:binding element name refers to the SOAP 1.2 namespace, then the binding indicates SOAP 1.2.

Unfortunately, this approach of using a single value to be shared between SOAP 1.1 and SOAP 1.2 leads to a problem when considering a JAX-WS application that does not use a WSDL document. In this situation, the author of the endpoint
implementation class might use the BindingType annotation like this:

@WebService
@BindingType("http://www.w3.org/2010/soapjms/")
public class MyEndpointImpl {
}

In this case, the author has only the BindingType annotation at his disposal to indicate the SOAP version and transport that should be used by his endpoint.
For the HTTP case, the JAX-WS specification defines separate values for SOAP 1.1 and SOAP 1.2, thereby allowing the endpoint author to differentiate between
them while specifying the BindingType annotation. But since the SOAP/JMS binding spec defines only a single value, the author can specify only SOAP 1.1 over JMS in this way.

For this reason, I'm proposing that the SOAP/JMS binding spec be modified to suggest the use of the following values with the JAX-WS BindingType annotation:
- "http://www.w3.org/2010/soapjms/soap1.1"
- "http://www.w3.org/2010/soapjms/soap1.2"


This proposal does not affect the value that will be used in the WSDL document as we can continue to use the value "http://www.w3.org/2010/soapjms/" as the soap:binding transport, since the soap:binding element name's namespace can be used to define the SOAP version to be used.

To clarify... if the endpoint author specifies
@BindingType("http://www.w3.org/2010/soapjms/soap1.2")
on his endpoint implementation class, then this equates to the use of SOAP 1.2 over JMS and the corresponding wsdl binding (generated by the JAX-WS wsgen tool) would look like this:
<wsdl11:binding name="StockQuoteSoapJMSBinding" type="tns:StockQuotePortType"
xmlns:soapjms="http://www.w3.org/2010/soapjms/">
15 <wsdl11soap12:binding style="document"
transport="http://www.w3.org/2010/soapjms/"/>
....

Similarly, if the endpoint author specifies
@BindingType("http://www.w3.org/2010/soapjms/soap1.1")
then the corresponding wsdl binding as generated by wsgen would look like this:
<wsdl11:binding name="StockQuoteSoapJMSBinding" type="tns:StockQuotePortType"
xmlns:soapjms="http://www.w3.org/2010/soapjms/">
15 <wsdl11soap11:binding style="document"
transport="http://www.w3.org/2010/soapjms/"/>
....

Regarding specific changes to the binding spec to resolve this issue, I'm proposing a new appendix (perhaps inserted after the current appendix D) that reads as follows:

Appendix E: JAX-WS @BindingType annotation values
The JAX-WS specification defines the @BindingType annotation for use with a JAX-WS endpoint implementation class. This annotation is used to specify the binding to be used by the endpoint, with the default being SOAP 1.1/HTTP. For example, the following annotation specifies the SOAP 1.2/HTTP binding:

@WebService
@BindingType("http://www.w3.org/2003/05/soap/bindings/HTTP/")
public class MyEndpointImpl {
...
}

In addition to the @BindingType annotation, the JAX-WS specification also defines the specific values to be used with the annotation:
- javax.xml.ws.soap.SOAPBinding.SOAP11HTTP_BINDING = "http://schemas.xmlsoap.org/wsdl/soap/http"
- javax.xml.ws.soap.SOAPBinding.SOAP12HTTP_BINDING = "http://www.w3.org/2003/05/soap/bindings/HTTP/"

Implementations of the SOAP/JMS binding specification which also support the JAX-WS specification are encouraged to support the use of the following @BindingType annotation values to indicate the use of the SOAP 1.1/JMS and SOAP 1.2/JMS bindings, respectively:
- SOAP 1.1/JMS: "http://www.w3.org/2010/soapjms/soap1.1"
- SOAP 1.2/JMS: "http://www.w3.org/2010/soapjms/soap1.2"
Related Actions Items:
No related actions
Related emails:
  1. Agenda for 2010-12-21 conference call (from eric@tibco.com on 2010-12-20)
  2. Agenda for 2010-12-14 conference call (from eric@tibco.com on 2010-12-20)
  3. ACTION-230 complete (from M8PHILLI@uk.ibm.com on 2010-12-14)
  4. RE: Agenda for 2010-12-14 conference call (from alewis@tibco.com on 2010-12-13)
  5. Agenda for 2010-12-14 conference call (from eric@tibco.com on 2010-12-13)
  6. Agenda for the 2010-12-07 conference call (from eric@tibco.com on 2010-12-06)
  7. Action-227: complete (from phil_adams@us.ibm.com on 2010-11-30)
  8. Agenda for the 2010-11-30 conference call (from eric@tibco.com on 2010-11-29)
  9. RE: ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value [SOAP-JMS Binding specification] (from peaston@progress.com on 2010-11-23)
  10. Re: ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value [SOAP-JMS Binding specification] (from eric@tibco.com on 2010-11-22)
  11. Re: ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value [SOAP-JMS Binding specification] (from phil_adams@us.ibm.com on 2010-11-22)
  12. Re: ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value [SOAP-JMS Binding specification] (from eric@tibco.com on 2010-11-22)
  13. ISSUE-67: Need a SOAP 1.2-specific SOAP/JMS transport URL value [SOAP-JMS Binding specification] (from sysbot+tracker@w3.org on 2010-11-22)

Related notes:

Opened as per: http://www.w3.org/2010/11/30-soap-jms-minutes.html

Eric Johnson, 6 Dec 2010, 20:18:20

(Changed state)

Eric Johnson, 6 Dec 2010, 20:18:56

Resolved as per: http://www.w3.org/2010/11/30-soap-jms-minutes.html

Eric Johnson, 6 Dec 2010, 20:30:23

Application of resolution accepted as per:
http://www.w3.org/2010/12/21-soap-jms-minutes.html

Eric Johnson, 3 Jan 2011, 22:34:12

Display change log ATOM feed


Chair, Staff Contact
Tracker: documentation, (configuration for this group), originally developed by Dean Jackson, is developed and maintained by the Systems Team <w3t-sys@w3.org>.
$Id: 67.html,v 1.1 2013-09-16 14:06:37 carine Exp $