JMSContext NullPointer Exception - wildfly 8.2.0默认队列

时间:2015-01-14 12:23:00

标签: jms wildfly-8

我正在尝试将消息发送到wildfly中的默认队列,当我调用“sendMessage()”时,JMSContext给了我一个空指针异常。我能解决什么?

public class SendMsg {


@Resource(lookup = "java:/ConnectionFactory")
 ConnectionFactory connectionFactory;


JMSContext context=connectionFactory.createContext();

@Resource(mappedName="java:/jms/queue/test")
Queue queue;

public void sendMessage(String message) {
    System.out.println("fancy beans");
    context.createProducer().send(queue, message);
}

}

2 个答案:

答案 0 :(得分:0)

我偶然发现了同样的错误(在我的情况下,我试图将JMSContext注入到Servlet中)。

这是一个丢失的beans.xml文件。就我而言,它属于war文件的WEB-INF文件夹。显然Weld子系统只有在存在时才会启动:https://docs.jboss.org/author/display/WFLY8/Developer+Guide#DeveloperGuide-Whicharetheimplicitmoduledependencies%3F

虽然我怀疑它也是在其他情况下开始的 - 我有一个EJB应用程序,它不需要任何bean.xml来使用CDI。

答案 1 :(得分:0)

您无法“提前”调用连接工厂。在构建bean时不会注入它。直接注入JMSContext可能更容易。

public class SendMsg {


//@Resource(lookup = "java:/ConnectionFactory")
//ConnectionFactory connectionFactory;

@Inject
JMSContext context;   //=connectionFactory.createContext();