【问题标题】:@Resource(name="jms/StockQueue", type=javax.jms.Queue) @Stateless public class StockServiceBean{} JNDI lookup does not work@Resource(name="jms/StockQueue", type=javax.jms.Queue) @Stateless public class StockServiceBean{} JNDI 查找不起作用
【发布时间】:2014-06-05 22:03:27
【问题描述】:

我正在尝试运行 EJB 3.2 规范第 281 页中的示例,但它会产生错误。简而言之,我在 Glassfish 4 中创建了一个队列 jms/StockQueue,我可以使用 @Resource(lookup = "jms/StockQueue") 注入对它的引用。所以我的无状态bean MyBean 成功获取到队列的引用。

@Stateless
public class MyBean {

@Resource(lookup = "jms/StockQueue")
private Queue queue;

public void sendMessage() {
    System.out.println(queue);
}
}

但是规范中的 StockServiceBean 没有获得对队列的引用。

@Resource(name = "jms/StockQueue", type = javax.jms.Queue.class)
@Stateless
public class StockServiceBean {
public void processStockInfo() {
    try {
        Context initCtx = new InitialContext();
        System.out.print(initCtx.lookup("java:comp/env/jms/StockQueue"));
    } catch (NamingException ex) {
        ex.printStackTrace();
    }
}
}

反而会产生错误:

  SEVERE:   javax.naming.NamingException: Lookup failed for 'java:comp/env/jms/StockQueue' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterprise.naming.impl.SerialInitContextFactory, java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl, java.naming.factory.url.pkgs=com.sun.enterprise.naming} [Root exception is javax.naming.NameNotFoundException: No object bound for java:comp/env/jms/StockQueue [Root exception is java.lang.NullPointerException]]

奇怪的是,如果我查找 ConnectionFactory 而不是 Queue,则该示例按预期工作。 谁能帮我运行这个例子?我会很感激你的建议。谢谢你。 最好的祝福, 玛丽安

【问题讨论】:

    标签: queue ejb jms jndi


    【解决方案1】:

    connectionFactory / @Resource / @Stateless 我也有类似的问题。在部署时,@Resource 注入尝试注入我的服务 bean,但最后一个还没有被 Weld 实例化(因为他有一个 @Dependent 范围)

    我解决了它使用 connectionFactory 对函数进行手动查找,它可以工作

    另见:https://blogs.oracle.com/chengfang/entry/do_s_and_don_ts

    【讨论】:

      猜你喜欢
      • 2013-03-10
      • 1970-01-01
      • 2023-03-30
      • 2022-06-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-12
      • 2017-11-09
      相关资源
      最近更新 更多