文档章节

JMS(三):MessageListener

berg-dm
 berg-dm
发布于 2016/03/02 21:20
字数 374
阅读 211
收藏 0

消息监听器(Message Listener

    消息监听器是一个充当消息的异步事件处理器的对象,它实现了MessageListener接口,这个接口只有一个方法onMessage,在这个方法里,你可以定义当接收到消息之后的要做的操作。你可以用setMessageListener方法为消息消费者注册一个监听器。

 

MessageListener listener = new MessageListener( {
      public void onMessage(Message msg) {          //      }
});
topicSubscriber.setMessageListener(listener); //注册监听
topicConnection.start();

    有一点要注意,如果你先调用Connectionstart,然后再调用setMessageListener,消息很可能接收不到,正确的做法是先注册监听,再启动Connection

    注册监听之后,一旦JMS容器有消费投递过来,消息消费(接收)者就会自动调用监听器的onMessage方法。这个方法的带有一个参数Message,这就接收到的消息。

 

public class Test2 {

	public static void main(String[] args) throws JMSException {
		
		//建立与消息服务器的连接:
		ConnectionFactory factory = new ActiveMQConnectionFactory("vm://localhost");
		Connection connection = factory.createConnection();
		connection.start();
		
		//创建一个队列:
		Queue queue = new ActiveMQQueue("testQueue");
		
		//创建一个会话:
		final Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
		//创建一个生产者: 
		MessageProducer producer = session.createProducer(queue);
		
		//通过会话创建一个消息:
		for( int i =0;i<=2; i++ ){
			Message message = session.createTextMessage("Hello JMS!");
			//生产者把消息发送给服务器:
			producer.send(message);
		}
		
		System.out.println( "消息已经成功发送到服务器。"  );
	
		//创建一个消费者:
		MessageConsumer consumer = session.createConsumer(queue);
		consumer.setMessageListener( new MessageListener(){
			@Override
			public void onMessage(Message message) {
				TextMessage text = (TextMessage) message;
				try {
					System.out.println( "内容: "+  text.getText() );
				} catch (JMSException e) {
					e.printStackTrace();
				}
			}
		});
	}
}

// 这里是先启动然后在监听


© 著作权归作者所有

berg-dm
粉丝 26
博文 98
码字总数 88970
作品 0
深圳
程序员
私信 提问
一步一步Spring整合JMS

1.1 JMS简介 JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中的话...

摆渡者
2015/08/31
424
0
SpringFramework4系列之SpringJMS:(五)Jms namespace的使用

Spring jms 的命名空间 xmlns:jms=" xsi:schemaLocation="http://www.springframework.org/schema/jmshttp://www.springframework.org/schema/jms/spring-jms.xsd" Spring jms 的命名空间元素......

Garrry
2015/07/07
1K
0
jms与ActiveMQ实践与应用

前言 这是我自己从不知道JMS为何物到学习如何使用第三方工具实现跨服务器的知识总结,在整个过程中可能考虑不全。另外,如果想尽快使用JMS,建议直接看实例那一节就可以了。有问题多交流。 ...

lvzjane
2013/11/13
478
0
Spring和Apache CXF,ActiveMQ整合记录

Spring 3.2.8 Apache CXF 1.6 ActiveMQ 5.9.0 Tomcat 8.0.3 MyEclipse 2013 1. Spring需要的jar包: spring-aop(aop支持) spring-beans(配置spring bean必须的包) spring-context(应用上......

精神病的羽毛球
2014/04/12
441
0
简单jms连接池和一点使用心得

jms在分布式应用中使用的非常多,在应用中加入一个简单的消息队列,即可达到解藕和高性能。比如是一个系统处理请求并把数据存入数据库,但中间加入消息队列后,发送和消费消息的项目可分开部...

小天120
2014/06/02
6.4K
1

没有更多内容

加载失败,请刷新页面

加载更多

用原生js对表格排序

本文转载于:专业的前端网站➸用原生js对表格排序 阿里的模拟笔试题,当时时间有限没写出来,其实是因为自己对原生dom操作不熟悉,这里补一下。 题目的大意是有一个表格,如代码所示 <table>...

前端老手
27分钟前
4
0
IT兄弟连 HTML5教程 HTML5表单 HTML5新增表单元素

HTML5有一些新的表单元素:<datalist>、<keygen>、<output>。不是所有的浏览器都支持HTML5新的表单元素,但即使浏览器不支持该表单属性,仍然可以显示为常规的表单元素。 1 <datalist>元素 ...

老码农的一亩三分地
29分钟前
4
0
【朝花夕拾】Android自定义View篇之(一)View绘制流程

https://www.cnblogs.com/andy-songwei/p/10955062.html

shzwork
31分钟前
5
0
Qt编写自定义控件70-扁平化flatui

一、前言 对于现在做前端开发人员来说,FlatUI肯定不陌生,最近几年扁平化的设计越来越流行,大概由于现在PC端和移动端的设备的分辨率越来越高,扁平化反而看起来更让人愉悦,而通过渐变色产...

飞扬青云
40分钟前
3
0
教你玩转Linux—添加批量用户

添加和删除用户对每位Linux系统管理员都是轻而易举的事,比较棘手的是如果要添加几十个、上百个甚至上千个用户时,我们不太可能还使用useradd一个一个地添加,必然要找一种简便的创建大量用户...

Linux就该这么学
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部