【问题标题】:NullPointer in Glassfish when inject JMS @Resource注入 JMS @Resource 时 Glassfish 中的 NullPointer
【发布时间】:2011-12-30 10:12:04
【问题描述】:

我正在尝试编写一个非常简单的 JMS 应用程序以部署在 Glassfish 上,以此来了解 JMS。

在课堂上发送消息我有以下内容:

    @Resource(mappedName="jms/MyConnectionFactory")
    public static QueueConnectionFactory factory;

    @Resource(mappedName="jms/MyQueue")
    public static Queue queue;

这会导致 NullPointer,这是我第一次尝试访问工厂时。但是,如果我尝试使用 JNDI 查找对象,它就可以工作。此类只是一个 POJO,由运行在简单 Web 应用程序中的 JSP 访问。

是因为它是一个 POJO 而不是例如一个 servlet,所以它失败了吗?

我以为它在 Glassfish 中部署和运行就足够了 - 显然我错了...

【问题讨论】:

    标签: jakarta-ee glassfish jms


    【解决方案1】:

    使用name 而不是mappedNamename 是 JNDI 名称,mappedName 是其他名称。见the API doc

    @Resource(name="jms/MyConnectionFactory")
    public static QueueConnectionFactory factory;
    

    我刚刚读到您的课程是一个简单的 POJO。您的类必须是由容器管理的某个 bean,才能使这些注释起作用。像@Stateless、@Stateful、@Singleton。

    【讨论】:

    • 谢谢 - 我会查看 @Singleton 注释。
    • 在 Glassfish 3 和 4 中有完全相同的问题。更改名称解决了问题,谢谢。
    猜你喜欢
    • 2012-01-01
    • 2020-01-04
    • 2021-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多