activemq 异步和同步接收

来点实在的代码,用例子来说明:

1.异步接收,主要设置messageListener。,然后编写onmessage方法,很简单

a.客户端发送5条消息

 1 package ch02.chat;
 2 
 3 import javax.jms.JMSException;
 4 
 5 public class ClientTest3 {
 6 
 7     public static void main(String[] args) throws JMSException {
 8         // TODO Auto-generated method stub
 9         JMSTopic jt=new JMSTopic();
10         jt.setSession();
11         //发送5个消息到queue2
12         for(int i=0;i<10;i++)
13         {
14             jt.writeMessage("queue2", "xo"+i,4);
15             
16         }
17         
18 
19     }
20 
21 }
View Code

b.接收端接收5条消息

 1 package ch02.chat;
 2 
 3 import javax.jms.JMSException;
 4 import javax.jms.Message;
 5 import javax.jms.MessageListener;
 6 import javax.jms.TextMessage;
 7 
 8 public class ClientTest3Response {
 9     
10 
11     public static void main(String[] args) throws JMSException {
12         // TODO Auto-generated method stub
13         JMSTopic jt=new JMSTopic();
14         jt.setSession();
15         
16         //异步接收信息,监听queue2
17         
18         System.out.println("异步接收前");
19     
20         
21         
22         jt.receiveMsg("queue2", new  MessageListener() {
23             
24             @Override
25             //当topic, queue2中有信息的时候
26             public void onMessage(Message message) {
27                 
28                 TextMessage mm=(TextMessage)message;
29                 try {
30                     System.out.println("接收到信息"+mm.getText());
31                 } catch (JMSException e) {
32                     // TODO Auto-generated catch block
33                     e.printStackTrace();
34                 }
35                 
36             }
37         });
38         
39         System.out.println("异步接收后");
40         
41         }
42     }
View Code

执行结果如下:

异步接收前
异步接收后
接收到信息xo0
接收到信息xo1
接收到信息xo2
接收到信息xo3
接收到信息xo4
接收到信息xo5
接收到信息xo6
接收到信息xo7
接收到信息xo8
接收到信息xo9

同步的以后再写好累。

原文地址:https://www.cnblogs.com/hansongjiang/p/4077270.html