hivemind-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Achim Huegen <ahue...@gmx-topmail.de>
Subject Re: Problem with "multiple service points for interface"
Date Thu, 19 Aug 2004 12:57:51 GMT
Autowiring can be switched off:

  <construct autowire-services="false" class="framework...">
  </construct>


> The definition of TestComponent2 doesn't specify a value for property 
> component2. So autowiring is tried and searches for a unique service 
> that implements the TestComponent interface in order to assign it to 
> property component2. Since two services with this interface exist an 
> error is raised.
> You can fix this by specifying a value for component2, but I dont't know
> how you can leave it null.
> 
> Achim Huegen
> 
> 
> Teshler, Andre wrote:
> 
>> I am working with beta-2 and use following configuration for my service:
>>
>>     <service-point id="TestComponent*1*" 
>> interface="framework.transaction.TestComponent">
>>         <invoke-factory service-id="hivemind.BuilderFactory">
>>             <construct class="framework.transaction.TestComponentImpl">
>>                 <set-service property="*component2*" 
>> service-id="TestComponent*2*"/>
>>             </construct>
>>         </invoke-factory>
>>     </service-point>
>>
>>     <service-point id="TestComponent*2*" 
>> interface="framework.transaction.TestComponent">
>>         <invoke-factory service-id="hivemind.BuilderFactory">
>>             <construct class="framework.transaction.TestComponentImpl">
>>             </construct>
>>         </invoke-factory>
>>     </service-point>
>>
>> With implementation class:
>>
>> public class TestComponentImpl implements TestComponent {
>>  private TestComponent *component2*;
>>  public void setComponent2(TestComponent component2) {
>>   this.component2 = component2;
>>  }
>>  // ...
>> }
>>
>> TestComponent1 will be initialized correctly, but acessing the 
>> property 'component2' I get following exception:
>>
>> /Unable to autowire property component2 of service 
>> framework.transaction.TestComponent2: There are multiple service 
>> points for interface framework.transaction.TestComponent: 
>> {framework.transaction.TestComponent, 
>> framework.transaction.TestComponent2}./
>>
>> What is wrong here ? It should be possible to define two services with 
>> the same interface (and same implementation class) but different 
>> injektions for member-services.
>>
>> By the way: this example has worked withe beta-1.
>>
>> Thanks.
>>
>> Andre
>>
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
> For additional commands, e-mail: hivemind-user-help@jakarta.apache.org
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: hivemind-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: hivemind-user-help@jakarta.apache.org


Mime
View raw message