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