新建一个java project:ActiveMQTest
从apache-activemq-5.8.0\lib文件夹下导入activemq相关的jar包(该文件夹下的jar基本都能满足需求,只需从该文件夹下导入即可)。
消息发送方代码:
package com.mycom.activemq; 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; /** * ActiviteMQ方式1:JMS方式 * 消息接收方(消费者) * * @author guweiqiang */ public class JMSReceiver { /** * 接收消息 */ public static void receiveMessage(String brokerUrl) { // ConnectionFactory:连接工厂 ConnectionFactory connectionFactory; // Connection:JMS客户端到JMS Provider的连接 Connection connection = null; // Session:发送/接收消息的会话 Session session = null; // Destination:消息目的地 Destination destination; // MessageConsumer:消息消费者 MessageConsumer messageConsumer; try { // 创建连接工厂ConnectionFactory实例 connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, brokerUrl); // 创建连接对象 connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建发送/接收消息的会话 session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); // 创建消息目的地 destination = session.createQueue("FirstQueue"); // 创建消息消费方 messageConsumer = session.createConsumer(destination); // 准备工作已经完成,可以开始接收消息了 while (true) { TextMessage message = (TextMessage) messageConsumer .receive(100 * 1000); if (message != null) { System.out.println("接收到消息:" + message.getText()); } else { break; } } // 提交会话 session.commit(); } catch (Exception ex) { ex.printStackTrace(); } finally { // 释放资源 if (session != null) { try { session.close(); } catch (JMSException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } } /** * 测试 */ public static void main(String[] args) { String brokerUrl = "tcp://127.0.0.1:61616"; JMSReceiver.receiveMessage(brokerUrl); } }
消息接收方代码:
package com.mycom.activemq; 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; /** * ActiviteMQ方式1:JMS方式 * 消息发送方(生产者) * * @author guweiqiang */ public class JMSSender { /** * 发送消息 */ public static void sendMessage(String brokerUrl, String msg) { // ConnectionFactory:连接工厂 ConnectionFactory connectionFactory; // Connection:JMS客户端到JMS Provider的连接 Connection connection = null; // Session:发送/接收消息的会话 Session session = null; // Destination:消息目的地 Destination destination; // MessageProducer:消息生产者 MessageProducer messageProducer; try { // 创建一个连接工厂ConnectionFactory实例 connectionFactory = new ActiveMQConnectionFactory( ActiveMQConnection.DEFAULT_USER, ActiveMQConnection.DEFAULT_PASSWORD, brokerUrl); // 创建连接对象 connection = connectionFactory.createConnection(); // 启动连接 connection.start(); // 创建发送/接收消息的会话 session = connection.createSession(Boolean.TRUE, Session.AUTO_ACKNOWLEDGE); // 创建消息目的地 destination = session.createQueue("FirstQueue"); // 创建消息发送方(生产者) messageProducer = session.createProducer(destination); messageProducer.setDeliveryMode(DeliveryMode.NON_PERSISTENT); // 设置是否持久化 // 准备工作已经完成,可以开始发送消息了 // 发送消息 TextMessage message = session.createTextMessage(msg); messageProducer.send(message); System.out.println("发送消息:" + message.getText()); // 提交会话 session.commit(); } catch (Exception ex) { ex.printStackTrace(); } finally { // 释放资源 if (session != null) { try { session.close(); } catch (JMSException e) { e.printStackTrace(); } } if (connection != null) { try { connection.close(); } catch (JMSException e) { e.printStackTrace(); } } } } /** * 测试方法 */ public static void main(String[] args) { String brokerUrl = "tcp://127.0.0.1:61616"; String msg = "test mq msg"; JMSSender.sendMessage(brokerUrl, msg); } }
启动ActiveMQ,再在本地执行上述发送方和接收方代码,运行结果如下:
发送方console:
发送消息:test mq msg
接收方console:
接收到消息:test mq msg
相关推荐
在本篇《ActiveMQ实战——实现一个简易版的聊天室》中,我们将深入探讨如何利用Apache ActiveMQ构建一个简单的在线聊天应用。ActiveMQ是Apache软件基金会的一个开源项目,它是一款功能强大的消息中间件,用于在...
Broker Cluster 模式是 ActiveMQ 集群中的另一种实现方式。在这个模式下,我们可以将多个 Broker 服务器组合在一起,以提高系统的可扩展性和可靠性。 要配置 Broker Cluster 模式,我们需要配置每个 Broker 服务器...
本章我将通过spring jms和activemq实现单Web项目服务器间异步访问和多Web项目服务器间异步访问。 一. 简介 1. 什么是Apache ActiveMq Apache ActiveMq是最流行和最强大的开源消息和集成服务器。同时Apache ActiveMq...
`javax.jms-1.1.jar` 是一个Java Message Service(JMS)的API库,它属于Java标准版(Java Standard Edition, Java SE)的一部分。JMS是Java平台上的一个规范,用于在分布式环境中进行异步消息传递。这个库主要用于...
3. **jms规范教程.pdf** - 这是一个关于JMS规范的教程,可能详细讲解了JMS接口、消息类型(如点对点和发布/订阅模型)、消息队列和主题等核心概念,为理解JMS和ActiveMQ的工作原理提供了基础。 综上所述,这个主题...
**JMS学习笔记(一)——JMS简介与ActiveMQ安装** Java消息服务(Java Message Service,简称JMS)是Java平台中用于企业级应用间异步通信的标准接口。它为应用程序提供了一种标准的方式,用来创建、发送、接收和读取...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它实现了Java消息服务(JMS)标准,为分布式系统提供高效、可靠的消息传递。在ActiveMQ中,有三种主要的方式来创建消息队列(QUEUE)和主题(TOPIC),这些...
总结起来,"JMS之Spring + ActiveMQ实现消息队列"涉及到的关键知识点包括:Spring框架的JMS支持、ActiveMQ的使用、ConnectionFactory的配置、JmsTemplate和MessageListener的实现,以及消息队列在解决系统解耦和异步...
在这个“一头扎进JMS之ActiveMQ系列”中,我们将深入探讨这个流行的开源消息代理——ActiveMQ,它是Apache软件基金会的项目,广泛应用于各种企业级应用。 ActiveMQ作为JMS的实现,提供了多种协议支持,包括开放标准...
- **ActiveMQ**:Apache ActiveMQ 是一个开源的消息中间件,它实现了 Java Message Service (JMS) 规范,提供可靠的消息传递和队列管理。 - **JMS**:Java Message Service 是一个标准接口,用于在分布式环境中交换...
Apache ActiveMQ 是一个开源的JMS提供商,它是Apache软件基金会的一部分,也是最广泛使用的JMS实现之一。ActiveMQ提供了多种协议支持,包括开放消息传递协议(STOMP)、AMQP、MQTT等,使得它能够与各种不同类型的...
**ActiveMQ在JMS中的应用——深入理解JMS** Java消息服务(Java Message Service,简称JMS)是一种标准API,用于在Java应用程序之间传递消息,它提供了一种解耦和异步处理数据的方式。JMS允许应用程序创建、发送、...
"activemq案例"暗示这是一个示例代码或教程,用于演示如何在ActiveMQ上实现JMS功能。"jms_test"可能是该项目中的测试部分。 描述"jms简单的案例,用的activemq,使用jms前请先启动activemq服务器"表明这是一个初级...
JMS提供了一种异步通信的方式,确保了不同应用程序之间通信的一致性和可靠性。JMS中的主要组件包括: 1. 消息(Message):数据结构,用于传递信息,可以是请求、响应或事件。 2. JMS客户端:使用JMS API发送和接收...
标题中的“Spring整合Blazeds实现ActiveMQ JMS消息服务”指的是在Java应用程序中使用Spring框架与Blazeds(一个Flex和Java之间的消息传递中间件)集成,通过ActiveMQ(一个流行的开源JMS提供商)来实现消息队列服务...
Apache ActiveMQ是基于JMS的一个开源消息代理和队列服务器,它是Apache软件基金会的一部分。ActiveMQ提供了多种协议的支持,包括OpenWire、STOMP、AMQP、MQTT和WS-Notification,使其能够与其他平台和语言进行通信。...
Spring整合JMS基于ActiveMQ实现是一项常见的企业级应用开发任务,它涉及到Spring框架、Java消息服务(JMS)以及ActiveMQ消息中间件的使用。在本文中,我们将深入探讨这三个关键概念,以及如何将它们有效地结合在一起...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于Java Message Service(JMS)标准,为分布式系统提供高效、可靠的消息传递服务。在使用ActiveMQ时,开发者通常需要引入特定的JAR包来实现与ActiveMQ...