刚学 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 的使用相关推荐

  1. activemq安装与配置_ActiveMQ(消息队列)从入门到了解

    一. ActiveMQ 简介 1 什么是 ActiveMQ ActiveMQ 是 Apache 出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个 完全支持 JMS1.1 和 J2EE ...

  2. activemq 开启监听_SpringBoot集成ActiveMQ怎么实现Topic发布/订阅模式通信?

    上一期我们讲了SpringBoot集成activeMQ实现Queue模式点对点通信,这一期我们接着讲SpringBoot集成activeMQ实现Topic发布/订阅模式通信. 发布/订阅模式通信是对点 ...

  3. XMPP——Smack[2]会话、消息监听、字体表情和聊天窗口控制

    连接之后,拿到了connection,通过它可以搞定会话 建立一个会话 [java] view plaincopyprint? MessageListener msgListener = new Me ...

  4. 多线程消息监听容器配置[ 消费者spring-kafka配置文件]

    1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://ww ...

  5. 使用jedis实现Redis消息队列(MQ)的发布(publish)和消息监听(subscribe)

    前言: 本文基于jedis 2.9.0.jar.commons-pool2-2.4.2.jar以及json-20160810.jar 其中jedis连接池需要依赖commons-pool2包,json ...

  6. RabbitMQ消息监听(多种模式-fanout/topic)

    1.rabbitmq消息监听,兼容多种模式的消息,fanout/topic等模式 MQ消息配置监听: package com.test.ddyin.conf;import java.util.Hash ...

  7. 个人免签支付APP监听和云端监听免挂机的设置说明

    个人免签支付系统需要监听个人支付宝微信的收款消息,来实现实时回调通知的效果,那么监听端也可以分为自行用APP挂机监听和云端监听免挂机两种方式. 然后监控端的状态可以用该接口查询获取: 请求地址:htt ...

  8. SpringBoot监听redis订阅监听和发布订阅

    前言 我们可以在redis中发布一条订阅到通道中,所有监听了这个通道的都可以收到这个发布的内容! redis订阅监听配置类 代码如下: RedisListenerConfig.java package ...

  9. oracle一般监听配置文件,Oracle监听配置讲解

    本文作者:贺圣军,叩丁狼高级讲师.原创文章,转载请注明出处. 很多使用Oracle的朋友遇到最多的问题就是Oracle数据库已经安装完成, 但是在使用Oracle客户端pl/sql等工具却怎么都连接不 ...

最新文章

  1. mysql sql模式_MySQL SQL模式特点汇总
  2. 教你用Python爬虫自制有道翻译词典
  3. nifi将hive同步到oracle,NiFi使用总结 一 hive到hive的PutHiveStreaming processor和SelectHiveQL...
  4. 使用R完成决策树分类
  5. Unity3D中JavaScript与C#对比
  6. c语言设计底层,【学习小总结】C语言的底层开发
  7. Alfred中使用技巧:不要迷失在翻译中,在Alfred中使用Google翻译
  8. js修改IOS微信title
  9. matlab画随机信号,(最新整理)随机信号处理基础matlab仿真
  10. Mybatis-Plus实现逻辑删除
  11. 50以内的质数顺口溜_100以内的质数顺口溜口诀
  12. 2022年电脑杀毒软件PK
  13. 计算机多媒体作业是什么,多媒体计算机技术作业一
  14. 快来带您了解中秋节的前世今生
  15. 0033__PDM,全称为 Persepolis Download Manager
  16. 输出所有3位数的水仙花数,例:153=1的3次方+5的3次方+3的3次方 谭浩强《c语言程序设计》第五章第八题
  17. Vue设置浏览器小图标(ICON)
  18. 对web移动端开发的一些了解
  19. 电容麦克风的幻象供电
  20. Python---format格式化

热门文章

  1. Kotlin 数组的使用
  2. Jenkins 插件 地址证书报错问题解决思路
  3. JavaScript高级程序设计(第3版)第六章读书笔记
  4. PAT (Basic Level) Practise (中文)-1025. 反转链表 (25)
  5. EF-Entity Framework 相关技术点收集贴
  6. PHP 常用字符串处理代码片段
  7. ecos 编译时无法找到 tclConfig.sh 和 tkConfig.sh
  8. 深度解析VC中的消息(上)
  9. 网页如何与mysql服务器建立连接不上,html与mysql建立连接数据库
  10. html产品列表页的设计,产品列表页.html