> -----Original Message-----
> From: Simon Nash [mailto:[email protected]]
> Sent: Tuesday, December 06, 2011 2:13 PM
> To: [email protected]
> Subject: Re: Dynamic service references ?
>
> Millies, Sebastian wrote:
> >> -----Original Message-----
> >> From: Simon Nash [mailto:[email protected]]
> >> Sent: Sunday, December 04, 2011 7:27 PM
> >> To: [email protected]
> >> Subject: Re: Dynamic service references ?
> >>
> >
[snip]
> > 1. When I specify the uri attribute on the binding.ws instead of the
> wsdlElem,
> > that gets replaced by the wsdlElem in the serialized form. Is that
> intentional?
> >
> I tried doing this and I didn't see what you are describing. The
> serialized
> XML contained the URI and no wsdlElement, and everything worked fine.
sorry, my bad, I modified the wrong reference in my test case.
> > 2. What is the intended behaviour when I specify BOTH the wsdlElem
> and uri
> > attributes? Shouldn't the explicit uri override the uri retrieved
> from the wsdl?
> > However, that is not what seems to happen.
> >
> According to the SCA 1.0 spec, if there is an explicit URI specified by
> the WSDL,
> the URI in the WSDL takes precedence. The solution is to use
> wsdl.binding when
> you are specifying a uri attribute. It doesn't matter if the
> referenced WSDL
> contains a service/port, as these will be ignored if you refer to the
> WSDL using
> wsdl.binding. I tried doing this with serialization and it worked.
>
[snip]
That is definitely not what I am seeing. With the following composite
file fragment, which contains an URI attribute pointing nowhere,
the service call over the (de)serialized reference still works (apparently
using the wsdl definition). I attach the serialized form of the reference.
<sca:reference name="bapiCostcenterGetList" requires="sca:authentication">
<sca:interface.wsdl
interface="urn:sap-com:document:sap:rfc:functions#wsdl.interface(ZWS_BAPI_COSTCENTER_GETLIST)"
/>
<sca:binding.ws
wsdlElement="urn:sap-com:document:sap:rfc:functions#wsdl.port(ZWS_BAPI_COSTCENTER_GETLISTService/ZWS_BAPI_COSTCENTER_GETLIST_D01)"
uri="foobaz" />
</sca:reference>
Or perhaps I am using the wrong binding. When you say "wsdl.binding" do you mean
the same as "binding.ws" ? I searched for "wsdl.binding" in the spec and the
book,
but did not find the term. Must I refer to the wsdl in some other way?
-- Sebastian
IDS Scheer Consulting GmbH
Geschäftsführer/Managing Directors: Kamyar Niroumand, Ivo Totev
Sitz/Registered office: Altenkesseler Straße 17, 66115 Saarbrücken, Germany -
Registergericht/Commercial register: Saarbrücken HRB 19681
http://www.softwareag.com
<?xml version='1.0' encoding='utf-8'?>
<composite targetNamespace="http://tuscany.apache.org/xmlns/sca/1.0"
name="default"
local="true"
xmlns="http://www.osoa.org/xmlns/sca/1.0">
<component name="default"
uri="bapicomponent">
<reference name="bapiCostcenterGetList"
requires="authentication">
<interface.wsdl interface="urn:sap-com:document:sap:rfc:functions#wsdl.interface(ZWS_BAPI_COSTCENTER_GETLIST)" />
<binding.ws requires="authentication"
xmlns:ns1="http://ps.softwareag.com/server-composite/"
policySets="ns1:BasicAuthenticationPolicySet"
name="bapiCostcenterGetList"
uri="foobaz"
wsdlElement="urn:sap-com:document:sap:rfc:functions#wsdl.port(ZWS_BAPI_COSTCENTER_GETLISTService/ZWS_BAPI_COSTCENTER_GETLIST_D01)" />
<callback requires="authentication authentication" />
<tuscany:businessInterface xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
interface="bapi.costcentergetlist.ZWSBAPICOSTCENTERGETLIST" />
<tuscany:businessInterface xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0"
interface="bapi.costcentergetlist.ZWSBAPICOSTCENTERGETLIST" />
<tuscany:referenceParameters xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.0" />
</reference>
</component>
</composite>