我花了很多时间来解决 JBoss 6.1.0 在我的 session bean 中注入(inject) JMS 连接工厂的问题。我使用带有默认配置文件的 JBoss 6.1.0 并在 debian 中运行它。
我的代码片段是:
@Resource(name="java:/QueueConnectionFactory")
private QueueConnectionFactory factory
jboss6/server/default/deploy/hornetq/hornetq-jms.xml中有:
<connection-factory name="QueueConnectionFactory" signature="queue">
<xa>true</xa>
<connectors>
<connector-ref connector-name="in-vm"/>
</connectors>
<entries>
<entry name="java:/QueueConnectionFactory"/>
</entries>
</connection-factory>
在部署我的耳朵文件时,我收到此错误:
Neither any mapped-name/lookup/jndi-name specified nor any ResourceProvider could process resource-ref named env/java:/QueueConnectionFactory of type javax.jms.QueueConnectionFactory
尽管队列工厂在管理控制台中可见,但它无法在我的 session bean 中注入(inject)队列连接工厂。
最佳答案
终于我找到了问题的答案:
在@Resource
注释中,还需要具有真实JNDI资源名称的mappedName
属性。
关于java - 无法在 JBoss 6.1.0 中使用资源注释注入(inject) JMS QueueConnectionFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9227367/