0

在我的 iPOJO 应用程序中,我尝试将服务绑定到两个消费者:

消费者:

@Component(immediate = true)
@Instantiate(name = "com.example.consumerX")
@Provides
public class consumerX{
    @Requires(id="ms",optional=true)
    private MyService[] services;

    @Bind(id = "ms", aggregate = true, optional = true)
    public synchronized void register(MyService service) {
            System.out.println("service bind to consumer");
    }

    @Unbind(id = "ms")
    public synchronized void unregister(MyService service) {
            System.out.println("service unbind from consumer");
    }
}

服务:

@Component(immediate = true)
@Instantiate(name = "com.example.serviceX")
@Provides(specifications = { MyService.class, MyServiceX.class})
public class MyServiceX{
    ...
}

如果我启动consumerA、consumerB 和serviceA,服务只绑定到consumerA。如果我启动 consumerB 和 serviceA,服务将绑定到 consumerB。

是否可以让服务绑定到两个消费者?有注释吗?

谢谢。

4

1 回答 1

0

一个服务绝对有可能被多个消费者使用。您的代码看起来不错,因此它应该可以工作。

您是否尝试使用“实例”命令 (http://felix.apache.org/site/ipojo-arch-command.html) 检查当前状态?

于 2012-04-24T06:04:32.277 回答