Message Driven Bean, Weld и инъекция Message

 
 
 
Сообщения:1
Добрый день!
Необходимо ввести в контекст объект, который пришел вместе с сообщением. Пробую делать вот так, но не получается. Может чего-то не хватает?
@MessageDriven(activationConfig = { 
    @ActivationConfigProperty(
      propertyName = "destination", 
      propertyValue = "java:/queue/myQueue"), 
    @ActivationConfigProperty(
      propertyName = "destinationType", 
      propertyValue = "javax.jms.Queue")
})
public class MyMessageListener implements MessageListener {

    @Inject
    private Instance<MyService> myServiceInstance;
     
    @Override
    public void onMessage(Message message) {
        myServiceInstance.get().doSomething();
    }
    
    @Produces
    public MyObject myObject(ObjectMessage objectMessage) throws JMSException {
        return (MyObject) objectMessage.getObject();
    }
}

@RequestScoped
public class MyService {

      @Inject
      private MyObject myObject;

      public void doSomething() {
         ...
      }

      @Produces
      @MyString
      public String myValue() {
        return myObject.getMyValue();
      }
}


Netbeans подчеркивает аргумент метода "myObject" желтым и пишет: "Unsatisfied dependency: no bean matches the injection point".
При попытке установки приложения на сервер приложений возникает ошибка:
Unsatisfied dependencies for type MyObject with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private mypackage.MyService.myObject
at mypackage.myObject(MyService.java:0)


Спасибо!
Изменен:22 окт 2019 11:41
 
Модераторы:wedens
Сейчас эту тему просматривают:Нет