2009-10-16 67 views
1

我試圖實現MessageListener,但它不起作用,但是當我使用MessageListner時,它不起作用。那麼我應該怎麼做MessageListener開始工作,我正在使用jboss 4.02。如何實現JMS MessageListener?

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

請提供有關「不起作用」含義的信息。 – SingleShot 2009-10-16 05:51:34

+0

第一個示例中,我收到消息並且可以sysout它們,但在第二個示例中,我沒有收到消息,因爲沒有打印到sysout – newbie 2009-10-16 05:53:20

回答

0

問題可能是註冊偵聽器的類已結束,並且偵聽器對象不存在。你應該保持對象的運行和運行來接收消息。

1

這可以在JBoss服務器上通過使用消息驅動bean來實現這可能是做到這一點的最佳方式和ofcourse一個更輕量級的選擇是通過實現了MessageListener http://bit.ly/epVSmS

3

創造春天有個jmsListener你記得打電話給connection.start()嗎?我想你肯定已經擁有了receive()方法的功能,但是當你改變代碼時你可能會意外地刪除它。

相關問題