activemq 开启监听_ActiveMQ 消息监听 MessageListener 的使用
刚学 ActiveMQ, 最开始搭建环境的时候引入的jar 包,几个核心的jar jms.jar, httpcore.jar , httpclient.jar, activemq-all.jar 准备完毕,启动junit 发现有好些个class 找不到,比如 PoolingClientConnectionManager 等,老是报 classnotfound 的错误,打开源代码一看,原来是引入的版本过低,将其版本升级到 4.2.1 就解决问题了。
ActiveMQ 最关心的就是消息的发送与接收了,消息发送不是问题,主要是消息接收,或者说是让消息不停地接收。
接收消息有两种方式,
方式一:
while(flag){
TextMessage message = (TextMessage)consumer.receive(1000 * 100);
if(message != null){
log.info("receive message : "+ message.getText());
if("stop".equals( message.getText())){
flag = false;
}
}
}
log.info("receiver server stop...");
这样就可以不间断地接收消息,当向客户端发送一个 “stop” 的时候,客户端进程将会结束。
方法二:
使用 MessageListener,开始学习MessageListener 的时候,无非就是在网上找些例子抄抄,实现代码如下:
consumer.setMessageListener(new MessageListener(){
@Override
public void onMessage(Message msg) {
// TODO Auto-generated method stub
TextMessage message = (TextMessage)msg;
try {
log.info("receive message : "+ message.getText());
} catch (JMSException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
});
这是网上出现最多的helloworld 级别的 MessageListener 使用方式,但我把代码抄完了之后一运行,发现什么都没有发生,在ActiveMQ 控制台上也没有看到消息被接收了。
原来,网上抄了这段代码并不是一段完整的代码,
首先理解下“监听”, 上面的这段程序虽然注册了监听,但监听也有一个生命周期,在main方法里面或者 @Test 里面调用了之后,程序会立马接收,监听的生命周期也将结束,不会再起作用。
那么怎么解决呢?那就要让这段程序不被结束,then how? see the code as below:
boolean flag = true;
while(flag){
Thread.sleep(1000 * 100);
}这样你的main 或者@Test 就会被一直“挂起”,MessageListener 也就可以正常使用了。
activemq 开启监听_ActiveMQ 消息监听 MessageListener 的使用相关推荐
- activemq安装与配置_ActiveMQ(消息队列)从入门到了解
一. ActiveMQ 简介 1 什么是 ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个 完全支持 JMS1.1 和 J2EE ...
- activemq 开启监听_SpringBoot集成ActiveMQ怎么实现Topic发布/订阅模式通信?
上一期我们讲了SpringBoot集成activeMQ实现Queue模式点对点通信,这一期我们接着讲SpringBoot集成activeMQ实现Topic发布/订阅模式通信. 发布/订阅模式通信是对点 ...
- XMPP——Smack[2]会话、消息监听、字体表情和聊天窗口控制
连接之后,拿到了connection,通过它可以搞定会话 建立一个会话 [java] view plaincopyprint? MessageListener msgListener = new Me ...
- 多线程消息监听容器配置[ 消费者spring-kafka配置文件]
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://ww ...
- 使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)
前言: 本文基于jedis 2.9.0.jar.commons-pool2-2.4.2.jar以及json-20160810.jar 其中jedis连接池需要依赖commons-pool2包,json ...
- RabbitMQ消息监听(多种模式-fanout/topic)
1.rabbitmq消息监听,兼容多种模式的消息,fanout/topic等模式 MQ消息配置监听: package com.test.ddyin.conf;import java.util.Hash ...
- 个人免签支付APP监听和云端监听免挂机的设置说明
个人免签支付系统需要监听个人支付宝微信的收款消息,来实现实时回调通知的效果,那么监听端也可以分为自行用APP挂机监听和云端监听免挂机两种方式. 然后监控端的状态可以用该接口查询获取: 请求地址:htt ...
- SpringBoot监听redis订阅监听和发布订阅
前言 我们可以在redis中发布一条订阅到通道中,所有监听了这个通道的都可以收到这个发布的内容! redis订阅监听配置类 代码如下: RedisListenerConfig.java package ...
- oracle一般监听配置文件,Oracle监听配置讲解
本文作者:贺圣军,叩丁狼高级讲师.原创文章,转载请注明出处. 很多使用Oracle的朋友遇到最多的问题就是Oracle数据库已经安装完成, 但是在使用Oracle客户端pl/sql等工具却怎么都连接不 ...
最新文章
- mysql sql模式_MySQL SQL模式特点汇总
- 教你用Python爬虫自制有道翻译词典
- nifi将hive同步到oracle,NiFi使用总结 一 hive到hive的PutHiveStreaming processor和SelectHiveQL...
- 使用R完成决策树分类
- Unity3D中JavaScript与C#对比
- c语言设计底层,【学习小总结】C语言的底层开发
- Alfred中使用技巧:不要迷失在翻译中,在Alfred中使用Google翻译
- js修改IOS微信title
- matlab画随机信号,(最新整理)随机信号处理基础matlab仿真
- Mybatis-Plus实现逻辑删除
- 50以内的质数顺口溜_100以内的质数顺口溜口诀
- 2022年电脑杀毒软件PK
- 计算机多媒体作业是什么,多媒体计算机技术作业一
- 快来带您了解中秋节的前世今生
- 0033__PDM,全称为 Persepolis Download Manager
- 输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 谭浩强《c语言程序设计》第五章第八题
- Vue设置浏览器小图标(ICON)
- 对web移动端开发的一些了解
- 电容麦克风的幻象供电
- Python---format格式化
热门文章
- Kotlin 数组的使用
- Jenkins 插件 地址证书报错问题解决思路
- JavaScript高级程序设计(第3版)第六章读书笔记
- PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
- EF-Entity Framework 相关技术点收集贴
- PHP 常用字符串处理代码片段
- ecos 编译时无法找到 tclConfig.sh 和 tkConfig.sh
- 深度解析VC中的消息(上)
- 网页如何与mysql服务器建立连接不上,html与mysql建立连接数据库
- html产品列表页的设计,产品列表页.html