I like to understand in oasis, why user can not specify both wsdlElement
and uri for binding.ws?

For e.g to support SOAP over JMS, the reference binding could be defined as

 <reference name="accountServiceTopic">
            <interface.wsdl interface="
http://www.mybank.com/account#wsdl.interface(AccountServiceTopic)"/>
             <binding.ws  wsdlElement="
http://www.mybank.com/account#wsdl.port(AccountServiceTopic/AccountServiceTopic
)"
  
uri="jms:jndi:jms/MyBankTopic_Request?jndiConnectionFactoryName=jms/MyBankTopic_CF&amp;targetService=AccountServiceTopic/AccountServiceTopic"/>
      </reference>

This reference fails in WebServiceBindingProcessor class since the code
checks for validation
rule BWS20019 from WebService Binding spec. The exception is
"[BWS20019] with binding.ws you can only specify one of url,
wsa:EndpointReference, #wsdl.service or #wsdl.port.
The following were found [uri, #wsdl.port]"

at line

 error(monitor, "MultipleEndpointsSpecified", reader,
endpointSpecifications.toString() );

I looked through WS Binding spec, specifically section 2.2 and there is no
mention of
SOAP over JMS uri and wsdlElement.

Industry standard JMS uri for SOAP over JMS follows this pattern
jms:jndi:<destination-jndi-name>?<property>=<value>&<property>=<value>&...

I tried removing wsdlElement attribute in above example and with just "uri"
defined, to avoid BWS20019 validation error,
I hit different validation exception in Tuscany, which is ASM60033

[ASM60033] No targets for reference: Composite = {
http://docs.oasis-open.org/ns/opencsa/sca/200912} Reference = accountService

Any pointers?

Regards
Rashmi

Reply via email to