Необходимо ввести в контекст объект, который пришел вместе с сообщением. Пробую делать вот так, но не получается. Может чего-то не хватает?
@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)
Спасибо!