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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to