On Thu, Apr 24, 2008 at 4:35 PM, <[EMAIL PROTECTED]> wrote:
> Hi all,
>
> I have set up a composite, where service CrawlerControllerComponent has
> one or more references to Crawlers. This runs without any problem using
> binding.sca. Here is the content of the .compiste file, where 2 Crawlers
> are refferenced:
>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
> xmlns:s="http://connectivity"
> name="connectivity">
>
> <component name="CrawlerControllerComponent">
> <implementation.java
> class="impl.CrawlerControllerImpl"/>
> <service name="CrawlerController">
> <interface.java
> interface="interfaces.CrawlerController" />
> </service>
> <reference name="connectivity"
> target="ConnectivityComponent">
> <binding.sca />
> </reference>
> <reference name="crawlers" multiplicity="1..n"
> target="CrawlerComponent SpecialCrawlerComponent">
> </reference>
>
> </component>
>
> <component name="ConnectivityComponent">
> <implementation.java class="impl.ConnectivityImpl"/>
> <service name="Connectivity">
> <interface.java
> interface="interfaces.Connectivity" />
> </service>
> </component>
>
> <component name="CrawlerComponent">
> <implementation.java class="impl.CrawlerImpl"/>
> <service name="Crawler">
> <interface.java interface="interfaces.Crawler"
> />
> </service>
> <property name="crawlerId">normal_crawler</property>
>
> </component>
>
> <component name="SpecialCrawlerComponent">
> <implementation.java class="impl.SpecialCrawlerImpl"/>
> <service name="Crawler">
> <interface.java interface="interfaces.Crawler"
> />
> </service>
> <property name="crawlerId">special_crawler</property>
> </component>
> </composite>
>
>
> But what do I have to do, to make this sample work using binding.ws (or
> binding.rmi) ???
>
> Just adding <binding.ws ...> to CrawlerComponent and
> SpecialCrawlerComponent leads to the following warning
> WARNUNG: Component reference doesn't have a matching binding
>
> I tried to configure multiple <binding> tags, but then both target
> entries of reference "crawlers" use the first binding tag (in this case
> http://AFA-19393:8088/CrawlerComponent). How can I have the targets use
> different bindings ?
>
> <composite xmlns="http://www.osoa.org/xmlns/sca/1.0"
> xmlns:t="http://tuscany.apache.org/xmlns/sca/1.0"
> xmlns:s="http://connectivity"
> name="connectivity">
>
> <component name="CrawlerControllerComponent">
> <implementation.java
> class="impl.CrawlerControllerImpl"/>
> <service name="CrawlerController">
> <interface.java
> interface="interfaces.CrawlerController" />
> </service>
> <reference name="connectivity"
> target="ConnectivityComponent">
> <binding.sca />
> </reference>
> <reference name="crawlers" multiplicity="1..n"
> target="CrawlerComponent SpecialCrawlerComponent">
> <binding.ws
> uri="http://AFA-19393:8088/CrawlerComponent" target="CrawlerComponent"
> />
> <binding.ws
> uri="http://AFA-19393:8088/SpecialCrawlerComponent"
> target="SpecialCrawlerComponent"/>
> </reference>
>
> </component>
>
> <component name="ConnectivityComponent">
> <implementation.java class="impl.ConnectivityImpl"/>
> <service name="Connectivity">
> <interface.java
> interface="interfaces.Connectivity" />
> </service>
> </component>
>
> <component name="CrawlerComponent">
> <implementation.java class="impl.CrawlerImpl"/>
> <service name="Crawler">
> <interface.java interface="interfaces.Crawler"
> />
> <binding.ws
> uri="http://AFA-19393:8088/CrawlerComponent" />
> </service>
> <property name="crawlerId">normal_crawler</property>
>
> </component>
>
> <component name="SpecialCrawlerComponent">
> <implementation.java class="impl.SpecialCrawlerImpl"/>
> <service name="Crawler">
> <interface.java interface="interfaces.Crawler"
> />
> <binding.ws
> uri="http://AFA-19393:8088/SpecialCrawlerComponent" />
> </service>
> <property name="crawlerId">special_crawler</property>
> </component>
> </composite>
>
>
> Bye,
> Daniel
>
>
>
Hi Daniel
Disregarding the multiple bindings angle for a moment. For a single remote
binding, looking at you composite I think the reference side should look
like....
<reference name="crawlers" multiplicity="1..n"
target="CrawlerComponent SpecialCrawlerComponent">
<binding.ws/>
</reference>
And the service side should be as you have it, e.g.
<service name="Crawler">
<interface.java interface="interfaces.Crawler"/>
<binding.ws uri="
http://AFA-19393:8088/CrawlerComponent<http://afa-19393:8088/CrawlerComponent>"
/>
</service>
etc.
Does that work?
Simon