博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JMS(十):使用ActiveMQ之JMSReplyTo
阅读量:6278 次
发布时间:2019-06-22

本文共 2948 字,大约阅读时间需要 9 分钟。

  hot3.png

1.     下载ActiveMQ地址:

        简单的例子, 试试

2.      Sender.java: 如何接受回复的消息

3.      receiver.java: 这个类用于消费消息 ,使用ActiveMQ服务

public class Sender {	public static void main(String[] args) throws JMSException {				// 注意三个参数 分别是 用户名 密码 (这个可以修改)   61616 代表端口号  		ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");		Connection connection = factory.createConnection();		connection.start();		//消息发送到这个queue		Queue queue = new ActiveMQQueue("testQueue2");		//消息回复到这个queue		Queue replyQueue = new ActiveMQQueue("replyQueue");				//创建会话   false表示可以回送消息 		Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);		//创建一个消息 :		Message message = session.createTextMessage(" I am JMS..");		//并设置它的JMSReplyTo为replyQueue			//通过下面一句代码指定回复的消息传到哪个队列。		message.setJMSReplyTo(replyQueue);  				//创建生产者		MessageProducer producer = session.createProducer(queue);		//设置消息的保存模式:		producer.setDeliveryMode( DeliveryMode.PERSISTENT );		//发送消息;		producer.send(message);				System.out.println(  "生产消息已发送成功。");				//创建一个消费者: 来获取接收者回复的消息		MessageConsumer consumer = session.createConsumer(replyQueue);		consumer.setMessageListener( new MessageListener(){			@Override			public void onMessage(Message message) {				TextMessage tm = (TextMessage) message;				try {					System.out.println( "收到的回复: " + tm.getText()  );				} catch (JMSException e) {					e.printStackTrace();				}			}					});	}}

        

public class Receiver {	public static void main(String[] args) throws JMSException {                                		ConnectionFactory factory = new ActiveMQConnectionFactory(ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");		Connection connection = factory.createConnection();		connection.start();		//创建会话   false表示可以回送消息 		final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);		//创建一个目的地 它用来接收消息:		Destination destination = session.createQueue("testQueue2");				//创建一个消费者: 来获取接收者回复的消息		MessageConsumer consumer = session.createConsumer(destination);		consumer.setMessageListener( new MessageListener(){			@Override			public void onMessage(Message message) {				TextMessage tm = (TextMessage) message;				try {					System.out.println( "接收到的生产消息: " + tm.getText()  );					System.out.println( "回复的目标地址:  " + message.getJMSReplyTo()   );										//准备发送一个回复消息:					//创建一个新的生产者来发送回复消息至接收回复消息的队列:					MessageProducer producer = session.createProducer( message.getJMSReplyTo() );					producer.send( session.createTextMessage(" Hello, I am receiver ..") );					System.out.println(  "\n 回复生产者成功。。。");				} catch (JMSException e) {					e.printStackTrace();				}			}					});	}}

运行结果:

    

对于send.java:            生产消息已发送成功。            收到的回复:  Hello, I am receiver ..            对于receiver.java:            接收到的生产消息:  I am JMS..            回复的目标地址:  queue://replyQueue            回复生产者成功。。。

 

转载于:https://my.oschina.net/gently/blog/631235

你可能感兴趣的文章
modprobe
查看>>
android中用ExpandableListView实现三级扩展列表
查看>>
%Error opening tftp://255.255.255.255/cisconet.cfg
查看>>
java读取excel、txt 文件内容,传到、显示到另一个页面的文本框里面。
查看>>
《从零开始学Swift》学习笔记(Day 51)——扩展构造函数
查看>>
python多线程队列安全
查看>>
[汇编语言学习笔记][第四章第一个程序的编写]
查看>>
android 打开各种文件(setDataAndType)转:
查看>>
补交:最最原始的第一次作业(当时没有选上课,所以不知道)
查看>>
Vue实例初始化的选项配置对象详解
查看>>
PLM产品技术的发展趋势 来源:e-works 作者:清软英泰 党伟升 罗先海 耿坤瑛
查看>>
vue part3.3 小案例ajax (axios) 及页面异步显示
查看>>
浅谈MVC3自定义分页
查看>>
.net中ashx文件有什么用?功能有那些,一般用在什么情况下?
查看>>
select、poll、epoll之间的区别总结[整理]【转】
查看>>
CSS基础知识(上)
查看>>
PHP中常见的面试题2(附答案)
查看>>
26.Azure备份服务器(下)
查看>>
mybatis学习
查看>>
LCD的接口类型详解
查看>>