2012-04-23 3 views
0

В моем приложении iPOJO я пытаюсь связать обслуживание двух потребителей:Возможно ли связать услугу с несколькими потребителями с 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, оков сервис только для потребителя. Если я запускаю consumerB и serviceA, служба привязывается к consumerB.

Можно ли связать службы с обоими потребителями? Есть ли для этого аннотация?

Спасибо.

ответ

0

Возможно, услуга может использоваться несколькими потребителями. Ваш код выглядит хорошо, и поэтому он должен работать.

Вы пытались проверить текущее состояние с помощью команды «экземпляры» (http://felix.apache.org/site/ipojo-arch-command.html)?

+0

Благодарим вас за ответ. Все экземпляры действительны, ошибка должна быть где-то в другом месте. Я пытаюсь его найти. – user1350914

Смежные вопросы