004_Queue消息模式发送文本消息
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消息模式发送文本消息相关推荐
- 008_Queue消息模式发送映射消息
1. 新建一个名为JMSActiveMQMapMessage的Java项目, 同时拷入相关jar包 2. 编辑QueueMapMessageProducer.java package com.jms. ...
- 006_Topic消息模式发送对象消息
1. 新建一个名为JMSActiveMQObjectMessage的Java项目, 同时拷入相关jar包 2. 编辑User.java package com.jms.activemq.tom;imp ...
- 005_Queue消息模式发送字节消息
1. 新建一个名为JMSActiveMQBytesMessage的Java项目, 同时拷入相关jar包 2. 编辑QueueBytesMessageProducer.java package com. ...
- 使用Python实现微信发送文本消息、图片以及附件
使用Python实现微信发送文本消息.图片以及附件 因为目前很多微信账号已经不支持网页版的操作了,因此无法使用之前的itchat这一类对微信进行操作. 为此,选择对微信PC端进行开发. 选择的方式比较 ...
- 企业微信机器人脚本python_python实现企业微信定时发送文本消息的示例代码
企业微信定时发送文本消息 使用工具:企业微信机器人+python可执行文件+计算机管理中的任务计划程序 第一步:创建群机器人 选择群聊,单击鼠标右键,添加群机器人. 建立群机器人后,右键查看机器人,如 ...
- python实现微信发消息_Python实现通过微信企业号发送文本消息的Class
前文<Python实现获取微信企业号access_token的Class>提供了获取微信企业号的access_token,本文中的代码做实际发送文本消息. 编程要点和调用方法:支持发送中文 ...
- 微信公众平台接收发送文本消息
配置步骤 1.我用的是测试号,如果没有测试号的小伙伴可以去注册 http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login 2.注册完 ...
- 微信服务号模版消息重复发送或消息接收不到的解决方案
微信服务号模版消息重复发送或消息接收不到的解决方案 问题描述 解决思路 问题描述 前段时间开发的服务号,有一个功能是主动向用户推送消息,经查看文档后,发现模版消息可以实现,于是按照文档向微信申请消息模 ...
- 消息管理-自动回复文本消息
输入关键字回复文本消息 首先 当用户发送消息给公众号时(或某些特定的用户操作引发的事件推送时),会产生一个POST请求,开发者可以在响应包(Get)中返回特定XML结构,来对该消息进行响应,严格来说, ...
最新文章
- 从电脑传PDF到IPad的阅读器上
- mybatis14--注解的配置
- java url下载ics_使用Microsoft Graph API处理外部(Internet / .ics)日历URL
- 调用API发送短信python
- 使用CLONE TABLE方式实现同region不同可用区的MaxCompute
- Autokroma AfterCodecs for Mac - 与众不同的特殊编码渲染插件
- 计算机图形学E7——裁剪-交互式Liang-Barskey矩形窗口裁剪直线
- html遮罩提示框代码,基于jQuery实现弹出可关闭遮罩提示框实例代码
- 小点向前走,我们在后头 -- 转自点妈文集
- 7本免费的Java电子书和教程
- html js 读取资源文件,javascript如何读取文件?
- IntelliJ IDEA 使用教程(2019图文版)
- The little Schemer
- 神级程序员都在用什么工具?【建议收藏】
- asp毕业设计—— 基于asp+access的网络招聘管理系统设计与实现(毕业论文+程序源码)——网络招聘管理系统
- 怎么把计算机硬盘里面的软件放到桌面,怎样将应用放到桌面上
- Maven突然不从私服下载依赖了
- background-size cover和contain的区别
- 如何设置苹果HomePod扬声器?
- 使用建造者模式(Builder Pattern) 设计Excel导出场景,附源码