- From: Phil Adams <phil_adams@us.ibm.com>
- Date: Tue, 7 Oct 2008 16:23:35 -0500
- To: public-soap-jms@w3.org, public-soap-jms-request@w3.org
- Message-ID: <OFB2994CBA.8F908086-ON862574DB.0073FEA6-862574DB.0075849A@us.ibm.com>
I agree with Eric that targetService should be only in the SOAP/JMS binding spec and that it should be specified in the endpoint location URI and not in the WSDL (other than the port's soap:address "location" attribute). There's something that I've been curious about for a while... In an HTTP endpoint location URI, the url pattern (i.e. the part after the context root - http://myhost:80/MyContextRoot/services/MyServicePort) is used to identify the port component that the request is intended for. Within the JMS endpoint location URI, the targetService property serves the same purpose (more or less) as the url pattern in the HTTP case, but yet the targetService property is optional in the URI. I'm not suggesting that we make it required or anything. I guess I'm just curious how a particular vendor runtime would be able to determine which port component the request is intended for if the targetService property is not specified? I know this was something that I struggled with when implementing SOAP over JMS in our WebSphere product. Of course, if I want to put in place a restriction that only one port component is allowed per application module, then it's not an issue, but that restriction would be absurd :) Does anyone have an idea how the request could be properly targetted to the correct port component *without* specifying the targetService property? Phil Adams WebSphere Development - Web Services IBM Austin, TX email: phil_adams@us.ibm.com office: (512) 838-6702 (tie-line 678-6702) mobile: (512) 750-6599 From: Eric Johnson <eric@tibco.com> To: Peter Easton <peaston@progress.com> Cc: public-soap-jms@w3.org Date: 10/07/2008 03:38 PM Subject: Re: Spec anomalies on targetService ? Hi Peter, Curious. From my perspective, the specification is correct. Peter Easton wrote: > Just so we can track this separately. > > > > I noticed going through the binding spec that Section 2.2.3 notes that > soapjms:targetService is marked “optional in IRI”. If I recall Eric’s > conversations correctly, I believe that this is intended a WSDL only > extension. The IRI spec does not mention the targetService, so something > is at least inconsistent. > Perhaps my statement was unclear, but what I was trying to say is that targetService is specific to the SOAP/JMS binding spec. It is not intended as a WSDL extension, but is only intended for placement in the URI. It exists to provide a corollary to HTTP URLs. For a somewhat strained analogy Imagine a servlet container is hosting a web application. Within that level, there may be one or more servlet endpoints that are capturing URLs within the context of that web app. Within that servlet, there may be additional discrimination based on the URL. That is, to a J2EE web application, the URL (somewhat simplistically) logically breaks down like: ${host}/${webapp_ctx}/${servlet_path}/${service} With my somewhat strained JMS analogy, supposing a service listens on a queue - the logical view of the queue looks like: ${queue} To restore some ability to share the same endpoint for multiple services, we add the targetService back in, and now the logical view of the URL looks like: ${queue}?targetService=${service} > > > Also note that targetService is missing from the list of WSDL extensions > in 3.6. > I don't believe it is "missing", since I don't think it is supposed to be there. -Eric.
Received on Tuesday, 7 October 2008 21:24:19 UTC