1. 新建一个名为JMSActiveMQTextMessage的Java项目, 同时拷入相关jar包

2. 相关jar包可以在apache-activemq-5.16.1\lib目录下找到

3. 编辑QueueTextMessageProducer.java

package com.jmsapp.qtm;import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageProducer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;public class QueueTextMessageProducer {// 默认连接用户名private static final String dftUsr = ActiveMQConnection.DEFAULT_USER;// 默认用户密码private static final String dftPwd = ActiveMQConnection.DEFAULT_PASSWORD;// 默认连接地址常量ActiveMQConnection.DEFAULT_BROKER_URL, 值是failover://tcp://localhost:61616// 服务器地址private static final String dftUrl = "failover://tcp://192.168.25.138:61616";// 队列名称private static final String queueName = "queueTextMsg";public static void main(String[] args) {// 1. 创建一个连接工厂ConnectionFactory cf = new ActiveMQConnectionFactory(dftUsr, dftPwd, dftUrl);// 连接对象Connection conn = null;// 会话对象Session session = null;try {// 2. 创建连接conn = cf.createConnection();// 3. 启动连接conn.start();// 4. 创建会话session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);// 5. 创建消息目的地。如果是点对点, 那么它的实现是Queue; 如果是订阅模式, 那它的实现是Topic。这里我们创建一个名为queueTextMsg的消息队列。Destination destination = session.createQueue(queueName);// 6. 消息生产者MessageProducer producer = session.createProducer(destination);// 7. 创建文本消息和发送消息for(int i = 0; i < 10; i++) {TextMessage message = session.createTextMessage();message.setText("JMS TextMessage类型的消息 " + i);producer.send(message);System.out.println("发送: " + message.getText());}} catch (JMSException e) {e.printStackTrace();} finally {try {if (session != null) {session.close();}} catch (JMSException e1) {e1.printStackTrace();} finally {if (conn != null) {try {conn.close();} catch (JMSException e) {e.printStackTrace();}}}}}
}

4. 运行QueueTextMessageProducer.java

5. 管理后台查看

6. 编辑QueueTextMessageConsumer1.java

package com.jmsapp.qtm;import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;public class QueueTextMessageConsumer1 {// 默认连接用户名private static final String dftUsr = ActiveMQConnection.DEFAULT_USER;// 默认用户密码private static final String dftPwd = ActiveMQConnection.DEFAULT_PASSWORD;// 服务器地址private static final String dftUrl = "failover://tcp://192.168.25.138:61616";// 队列名称private static final String queueName = "queueTextMsg";public static void main(String[] args) {// 1. 创建一个连接工厂ConnectionFactory cf = new ActiveMQConnectionFactory(dftUsr, dftPwd, dftUrl);// 连接对象Connection conn = null;// 会话对象Session session = null;try {// 2. 创建连接conn = cf.createConnection();// 3. 创建会话session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);// 4. 创建消息目的地。如果是点对点, 那么它的实现是Queue; 如果是订阅模式, 那它的实现是Topic。这里我们创建一个名为queueTextMsg的消息队列。Destination destination = session.createQueue(queueName);// 5. 消息消费者MessageConsumer consumer = session.createConsumer(destination);// 6. 启动连接, 准备开始接收消息conn.start();// 7. 接收消息while(true) {TextMessage message = (TextMessage) consumer.receive(3000);if(message == null) {break;}System.out.println("接收: " + message.getText());}} catch (JMSException e) {e.printStackTrace();} finally {try {if (session != null) {session.close();}} catch (JMSException e1) {e1.printStackTrace();} finally {if (conn != null) {try {conn.close();} catch (JMSException e) {e.printStackTrace();}}}}}
}

7. 运行QueueTextMessageConsumer1.java

8. 管理后台查看

9. 编辑QueueTextMessageConsumer2.java, 创建消息监听器异步接收消息

package com.jmsapp.qtm;import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.JMSException;
import javax.jms.Message;
import javax.jms.MessageConsumer;
import javax.jms.MessageListener;
import javax.jms.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;public class QueueTextMessageConsumer2 {// 默认连接用户名private static final String dftUsr = ActiveMQConnection.DEFAULT_USER;// 默认用户密码private static final String dftPwd = ActiveMQConnection.DEFAULT_PASSWORD;// 服务器地址private static final String dftUrl = "failover://tcp://192.168.25.138:61616";// 队列名称private static final String queueName = "queueTextMsg";public static void main(String[] args) {// 1. 创建一个连接工厂ConnectionFactory cf = new ActiveMQConnectionFactory(dftUsr, dftPwd, dftUrl);try {// 2. 创建连接Connection conn = cf.createConnection();// 3. 创建会话Session session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);// 4. 创建消息目的地。如果是点对点, 那么它的实现是Queue; 如果是订阅模式, 那它的实现是Topic。这里我们创建一个名为queueTextMsg的消息队列。Destination destination = session.createQueue(queueName);// 5. 消息消费者MessageConsumer consumer = session.createConsumer(destination);// 6. 接收消息consumer.setMessageListener(new MessageListener() {@Overridepublic void onMessage(Message msg) {TextMessage message = (TextMessage) msg;try {System.out.println("接收: " + message.getText());} catch (JMSException e) {e.printStackTrace();}}});// 7. 启动连接, 准备开始接收消息conn.start();} catch (JMSException e) {e.printStackTrace();}}
}

10. 运行QueueTextMessageConsumer2.java, 没有消息它会一直等待

11. 再次运行QueueTextMessageProducer.java, QueueTextMessageConsumer2.java接收到了QueueTextMessageProducer.java发送的消息, 而且QueueTextMessageConsumer2.java还处于等待接收消息状态, 直到退出程序。

004_Queue消息模式发送文本消息相关推荐

  1. 008_Queue消息模式发送映射消息

    1. 新建一个名为JMSActiveMQMapMessage的Java项目, 同时拷入相关jar包 2. 编辑QueueMapMessageProducer.java package com.jms. ...

  2. 006_Topic消息模式发送对象消息

    1. 新建一个名为JMSActiveMQObjectMessage的Java项目, 同时拷入相关jar包 2. 编辑User.java package com.jms.activemq.tom;imp ...

  3. 005_Queue消息模式发送字节消息

    1. 新建一个名为JMSActiveMQBytesMessage的Java项目, 同时拷入相关jar包 2. 编辑QueueBytesMessageProducer.java package com. ...

  4. 使用Python实现微信发送文本消息、图片以及附件

    使用Python实现微信发送文本消息.图片以及附件 因为目前很多微信账号已经不支持网页版的操作了,因此无法使用之前的itchat这一类对微信进行操作. 为此,选择对微信PC端进行开发. 选择的方式比较 ...

  5. 企业微信机器人脚本python_python实现企业微信定时发送文本消息的示例代码

    企业微信定时发送文本消息 使用工具:企业微信机器人+python可执行文件+计算机管理中的任务计划程序 第一步:创建群机器人 选择群聊,单击鼠标右键,添加群机器人. 建立群机器人后,右键查看机器人,如 ...

  6. python实现微信发消息_Python实现通过微信企业号发送文本消息的Class

    前文<Python实现获取微信企业号access_token的Class>提供了获取微信企业号的access_token,本文中的代码做实际发送文本消息. 编程要点和调用方法:支持发送中文 ...

  7. 微信公众平台接收发送文本消息

    配置步骤 1.我用的是测试号,如果没有测试号的小伙伴可以去注册  http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2.注册完 ...

  8. 微信服务号模版消息重复发送或消息接收不到的解决方案

    微信服务号模版消息重复发送或消息接收不到的解决方案 问题描述 解决思路 问题描述 前段时间开发的服务号,有一个功能是主动向用户推送消息,经查看文档后,发现模版消息可以实现,于是按照文档向微信申请消息模 ...

  9. 消息管理-自动回复文本消息

    输入关键字回复文本消息 首先 当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应,严格来说, ...

最新文章

  1. 从电脑传PDF到IPad的阅读器上
  2. mybatis14--注解的配置
  3. java url下载ics_使用Microsoft Graph API处理外部(Internet / .ics)日历URL
  4. 调用API发送短信python
  5. 使用CLONE TABLE方式实现同region不同可用区的MaxCompute
  6. Autokroma AfterCodecs for Mac - 与众不同的特殊编码渲染插件
  7. 计算机图形学E7——裁剪-交互式Liang-Barskey矩形窗口裁剪直线
  8. html遮罩提示框代码,基于jQuery实现弹出可关闭遮罩提示框实例代码
  9. 小点向前走,我们在后头 -- 转自点妈文集
  10. 7本免费的Java电子书和教程
  11. html js 读取资源文件,javascript如何读取文件?
  12. IntelliJ IDEA 使用教程(2019图文版)
  13. The little Schemer
  14. 神级程序员都在用什么工具?【建议收藏】
  15. asp毕业设计—— 基于asp+access的网络招聘管理系统设计与实现(毕业论文+程序源码)——网络招聘管理系统
  16. 怎么把计算机硬盘里面的软件放到桌面,怎样将应用放到桌面上
  17. Maven突然不从私服下载依赖了
  18. background-size cover和contain的区别
  19. 如何设置苹果HomePod扬声器?
  20. 使用建造者模式(Builder Pattern) 设计Excel导出场景,附源码

热门文章

  1. linux基础(6)-shell编程
  2. Windows登录类型知多少?
  3. java 科学计算法
  4. Yii2使用Cookie的注意事项
  5. 企业网络运行中,您是否遇到如下问题?——Vecloud
  6. 广域网智能流量调度—Vecloud
  7. 【隔离】跨区消息穿透定义
  8. 金仓Linux安装版取消开机自启服务
  9. 平时少用到的sql query
  10. Orchard: Shape展现介绍