如何实现JMS MessageListener?

时间:2009-10-16 05:39:47

标签: java-ee jms message-queue

我试图实现MessageListener,但它不起作用,但是当我使用MessageListner时,它不起作用。那么我应该怎么做MessageListener开始工作,我正在使用jboss 4.02。

recv.receive(); // This works

recv.setMessageListener(new ExListener()); // This doesn't work

    public static class ExListener 
    implements MessageListener
    {
        public void onMessage(Message msg)
        {
            TextMessage tm = (TextMessage) msg;
            try {
                System.out.println("onMessage, recv text="+tm.getText());
            } catch(Throwable t) {
                t.printStackTrace();
            }
        }
    }

3 个答案:

答案 0 :(得分:3)

你还记得调用connection.start()吗?我想你必须有这个让receive()方法起作用,但是你可能在更改代码时意外删除了它。

答案 1 :(得分:1)

这可以通过使用消息驱动的bean在Jboss服务器上实现,这可能是最好的方法。当然,更轻量级的选项是通过实现MessageListener http://bit.ly/epVSmS <在Spring中创建jmsListener / p>

答案 2 :(得分:0)

问题可能是注册侦听器的类已经结束,并且侦听器对象不存在。您应该保持对象的实时运行以接收消息。