java - 无法在 JBoss 6.1.0 中使用资源注释注入(inject) JMS QueueConnectionFactory

标签 java jboss ejb jms

我花了很多时间来解决 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/

相关文章:

java - 在 Java 中阻止 Final block 执行的有效命令

java - JPA 2.0 的 jar 文件

java - 如何从列表中返回数组 [Java]

java - 审计 JBossAS5 上的 JDBC 执行

java - 使用 EJB 注入(inject)用户实体

java - 如何以编程方式添加 EJB 拦截器?

java - 当按键释放时,将 jSpinner 的值反射(reflect)在 jLabel 上

Java ThreadFactory 如何创建 ThreadCreationException 以在 JUnit 中进行测试

java - 指向 env var 的 jboss 缓存位置

java - 捕获 EJBTransactionRolledbackException