注入JMS @Resource时,Glassfish中的NullPointer

Pau*_*ett 2 jms glassfish java-ee

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

在类中发送消息我有以下内容:

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

    @Resource(mappedName="jms/MyQueue")
    public static Queue queue;
Run Code Online (Sandbox Code Playgroud)

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

是因为它是一个POJO而不是,例如,这是一个失败的servlet?

我曾经认为它在Glassfish中部署和运行的事实就足够了 - 显然我错了......

hag*_*age 5

name而不是mappedName.name是JNDI名称,mappedName是另一回事.请参阅API文档

@Resource(name="jms/MyConnectionFactory")
public static QueueConnectionFactory factory;
Run Code Online (Sandbox Code Playgroud)

我刚刚读到你的课是一个简单的POJO.您的类必须是由容器管理的某个bean才能使这些注释工作.喜欢@Stateless,@ Stateful,@ Singleton.