2012-04-23 6 views
0

私は2人の消費者にサービスをバインドしよう:私はconsumerA、consumerBとサービスA、サービスバインドを開始した場合iPOJOで複数のコンシューマにサービスをバインドすることはできますか?私iPOJOアプリケーションで

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

消費者:

@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"); 
    } 
} 

サービス消費者Aにのみ。私がconsumerBとserviceAを開始すると、サービスはconsumerBにバインドされます。

は、それは両方の消費者へのサービスバインドを聞かせすることは可能ですか?そのための注釈はありますか?

ありがとうございました。

答えて

0

これは、いくつかの消費者が使用するサービスのために間違いなく可能です。あなたのコードはよく見えるので、うまくいくはずです。

あなたは(http://felix.apache.org/site/ipojo-arch-command.html)「インスタンス」コマンドを使用して現在の状態をチェックしてみましたか?

+0

ありがとうございました。すべてのインスタンスが有効ですが、間違いは別の場所にある必要があります。私はそれを見つけることを試みる。 – user1350914

関連する問題