二、Spring整合JMS(一)——基于ActiveMQ实现
四、Spring整合JMS(三)——MessageConverter消息转换器
1.下载ActiveMQ
去官方网站下载:http://activemq.apache.org/
2.运行ActiveMQ
将apache-activemq-5.5.1-bin.zip解压缩,双击apache-activemq-5.5.1\bin\activemq.bat运行ActiveMQ程序。
启动ActiveMQ以后,登陆:http://localhost:8161/admin/,创建一个Queue,命名为FirstQueue。
3.导入jar包:
4.实例
1、发送端
import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.DeliveryMode; 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 Sender { /** 创建Session */ public static Session createSession() { // 连接工厂,JMS 用它创建连接 ConnectionFactory connectionFactory = null; // MS 客户端到JMS Provider 的连接 Connection connection = null; // 一个发送或接收消息的会话 Session session = null; try { // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); // 通过连接工厂创建连接 connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); } catch (Exception e) { e.printStackTrace(); } return session; } /** 创建消息发送者 */ public static MessageProducer createProducer(Session session) { // 消息的目的地;消息发送给谁. Destination destination = null; // 消息发送者 MessageProducer producer = null; try { // 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置 destination = session.createQueue("FirstQueue"); // 消息--发送者 producer = session.createProducer(destination); // 设置不持久化,实际根据项目决定 producer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); } catch (Exception e) { e.printStackTrace(); } return producer; } /** 发送消息 */ public static void sendMessage(Session session, MessageProducer producer, String content) { TextMessage textMessage = null; try { textMessage = session.createTextMessage(content); producer.send(textMessage); session.commit();// 提交 } catch (JMSException e) { e.printStackTrace(); } } /** 测试 */ public static void main(String[] args) { Session session = createSession(); MessageProducer producer = createProducer(session); for (int i = 0; i < 5; i++) { String content = "Message---" + i; System.out.println(content); sendMessage(session, producer, content); } } }
2、接收端
import javax.jms.Connection; import javax.jms.ConnectionFactory; import javax.jms.Destination; import javax.jms.MessageConsumer; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnection; import org.apache.activemq.ActiveMQConnectionFactory; public class Receiver { /** 创建Session */ public static Session createSession() { // 连接工厂,JMS 用它创建连接 ConnectionFactory connectionFactory = null; // MS 客户端到JMS Provider 的连接 Connection connection = null; // 一个发送或接收消息的会话 Session session = null; try { // 构造ConnectionFactory实例对象,此处采用ActiveMq的实现jar connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616"); // 通过连接工厂创建连接 connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建Session session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE); } catch (Exception e) { e.printStackTrace(); } return session; } /** 创建消息接收者 */ public static MessageConsumer createConsumer(Session session) { // 消息的目的地;消息发送给谁. Destination destination = null; // 消息接收者 MessageConsumer consumer = null; try { // 获取session注意参数值FirstQueue是一个服务器的queue,须在在ActiveMq的console配置 destination = session.createQueue("FirstQueue"); // 得到消息生成者"发送者" consumer = session.createConsumer(destination); } catch (Exception e) { e.printStackTrace(); } return consumer; } /** 发送消息 */ public static void receiverMessage(MessageConsumer consumer) { try { while (true) { // 设置接收者接收消息的时间 TextMessage message = (TextMessage) consumer.receive(6 * 1000); if (null != message) { System.out.println("ReceiverMessage--" + message.getText()); } else { System.out.println("break"); break; } } } catch (Exception e) { e.printStackTrace(); } } /** 测试 */ public static void main(String[] args) { receiverMessage(createConsumer(createSession())); } }
5、测试结果
执行Sender:
Message---0
Message---1
Message---2
Message---3
Message---4
执行Receive:
ReceiverMessage--Message---0
ReceiverMessage--Message---1
ReceiverMessage--Message---2
ReceiverMessage--Message---3
ReceiverMessage--Message---4
相关推荐
**JMS与ActiveMQ入门实例详解** Java消息服务(Java Message Service,简称JMS)是Java平台中用于创建、发送、接收和阅读消息的应用程序接口。它为应用程序提供了标准的接口,可以跨越多种消息中间件产品进行通信。...
在“activemq入门实例”中,你将学习到以下几个关键知识点: 1. **ActiveMQ的基本概念**:ActiveMQ作为JMS提供商,它提供一个服务器端(broker)来存储和转发消息,客户端则通过连接到这个服务器来发送和接收消息。...
《ActiveMQ入门实例详解》 在信息技术领域,消息队列(Message Queue)作为一种重要的中间件技术,被广泛应用于系统解耦、异步处理以及负载均衡等场景。Apache ActiveMQ是Apache软件基金会开发的一款开源消息代理,...
Apache ActiveMQ是一个开源的消息代理,遵循Java消息服务(JMS)规范,用于在不同的应用和平台之间进行可靠的消息传递。ActiveMQ能够支持多种传输协议,并能够处理大量消息的存储和转发。 从文件【部分内容】中,...
4. **实例化Message**:你可以创建TextMessage、ObjectMessage、MapMessage等不同类型的Message,每种类型对应不同的数据格式。 5. **连接管理和关闭**:在完成消息传递后,记得关闭Session、Connection和Producer...
本实例旨在引导初学者了解并熟悉ActiveMQ的基本概念、安装配置以及使用方法。 一、ActiveMQ概述 ActiveMQ是一个高性能、灵活且功能丰富的消息代理,支持多种消息协议,如OpenWire、STOMP、AMQP、MQTT等,使得不同...
标题"**HETF-ActiveMQ入门手册.zip**"表明这是一个关于ActiveMQ的入门学习资源,可能包含详细的文档或教程,旨在帮助初学者理解并使用ActiveMQ。"HETF"可能是某个组织、项目或者教程系列的缩写。由于描述中并未提供...
**ActiveMQ实践入门指南** Apache ActiveMQ是一款开源的消息中间件,它是Java消息服务(JMS)的实现...阅读提供的"ActiveMQ实践入门指南.pdf"文件,将为你提供更详细的步骤和实例,助你进一步提升ActiveMQ的应用技能。
本教程将引导你通过一个简单的入门案例了解如何使用ActiveMQ实现生产者与消费者的模式。 首先,我们需要了解ActiveMQ的基本概念。在消息队列中,生产者是发送消息的实体,而消费者则是接收和处理这些消息的实体。...
要实现这一点,可以设置两个或多个ActiveMQ实例,通过网络连接形成集群,并配置适当的故障转移策略。 接下来,我们来创建一个简单的MQDemo1。这通常涉及编写代码来创建生产者和消费者。例如,在Java环境中,我们...
本教程将深入探讨如何将这两个强大的工具结合在一起,以创建一个简单的发送JMS消息的入门实例。 首先,我们需要理解ActiveMQ的基本概念。ActiveMQ是Apache软件基金会开发的一个开源消息代理,它实现了JMS规范,提供...
在本文中,我们将深入探讨如何使用Maven构建一个基于ActiveMQ的简单实例。ActiveMQ是Apache软件基金会开发...这个实例可以帮助初学者快速理解和入门ActiveMQ的基本用法,为进一步探索分布式系统中的消息通信打下基础。
【ActiveMQ入门】 Apache ActiveMQ 是一款开源的Java消息服务(JMS)提供商,属于Apache软件基金会的一员。它遵循JMS 1.1规范,旨在为分布式系统中的应用程序提供高效、可靠的异步通信。ActiveMQ的特性使得它成为...
【ActiveMQ使用入门】 ActiveMQ是一款基于Java的消息中间件,它是Apache基金会的开源项目,也是最早的JMS(Java消息服务)实现之一。JMS是一种标准,定义了在Java环境中访问消息中间件的接口,但并未具体实现。...
本书适合入门学习,所有例子都有源码 1.Servicemix环境安装和配置 2.Eclipse开发环境安装搭建 3.用Bundle对应用组件模块化 4.Camel的应用和例子 Bundle之间的消息传递, Errorhandling 负载均衡 。。。。。。 5....
标题 "activemq入门总结" 暗示了本文将主要围绕Apache ActiveMQ,一个流行的开源消息代理和队列中间件进行讲解。ActiveMQ是基于Java Message Service (JMS) API 的,它允许应用程序在分布式环境中发送和接收消息,...