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中部署和运行的事实就足够了 - 显然我错了......
用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.