Я не уверен, что это должно работать, но я пытаюсь написать продюсера JMS с cdi с wildfly и застрял при введении ресурсов в управляемый cdi bean-компонент:
public class CdiProducer {
@Resource(name = "java:jboss/DefaultJMSConnectionFactory")
@Produces
QueueConnectionFactory qcf;
@Resource(name = "java:/queue/HELLOWORLDMDBQueue")
@Produces
@Hello
Queue helloWordQueue;
Выполняя это, я получаю следующую ошибку:
JBAS016076: Ошибка внедрения ресурса в управляемый компонент CDI. Не удается найти ресурс с именем ...
Но что очень странно, когда я копирую и вставляю ресурсы в корпоративный компонент, все работает!
@Stateless
public class QueueSender {
@Resource(name="java:jboss/DefaultJMSConnectionFactory")
QueueConnectionFactory qcf;
@Resource(name="java:/queue/HELLOWORLDMDBQueue")
Queue helloWordQueue;
Очередь определяется как:
<jms-destinations>
<jms-queue name="HelloWorldQueue">
<entry name="/queue/HELLOWORLDMDBQueue"/>
<entry name="java:jboss/exported/queue/HELLOWORLDMDBQueue"/>
</jms-queue>
</jms-destinations>
Это должно так работать? Или это ошибка wildfly?
Queue
илиConnectionFactory
? Кроме того, если вы используете WildFly 8, вы можете просто ввестиJMSContext
и избежать многих из этих значений по умолчанию. - person John Ament   schedule 19.03.2014