其他都一样,只记录不一样的地方
context.xml中jndi的部分,
<Resource name="jms/queue/MyQueue"
auth="Container"
type="org.apache.activemq.command.ActiveMQQueue"
factory="org.apache.activemq.jndi.JNDIReferenceFactory"
physicalName="MY.TEST.FOO.QUEUE"/>
发送消息,通过servlet
InitialContext initCtx = new InitialContext(); Context envContext = (Context) initCtx.lookup("java:comp/env"); ConnectionFactory connectionFactory = (ConnectionFactory) envContext.lookup("jms/ConnectionFactory"); Connection connection = connectionFactory.createConnection(); Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE); MessageProducer producer = session.createProducer((Destination) envContext.lookup("jms/queue/MyQueue")); Message testMessage = session.createMessage(); testMessage.setStringProperty("testKey", "testValue111"); producer.send(testMessage);
接受消息通过main方法
package com.activemqtest; import javax.jms.JMSException; import javax.jms.Message; import javax.jms.MessageConsumer; import javax.jms.Queue; import javax.jms.QueueConnection; import javax.jms.Session; import javax.jms.TextMessage; import org.apache.activemq.ActiveMQConnectionFactory; public class Reciever2 { protected Queue queue; protected String queueName = "MY.TEST.FOO.QUEUE"; protected String url = "tcp://192.168.91.128:61616"; protected int ackMode = Session.AUTO_ACKNOWLEDGE; public static void main(String[] args) { Reciever2 rec = new Reciever2(); try { rec.run(); } catch (Exception e) { e.printStackTrace(); } } public void run() throws JMSException { ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory( url); QueueConnection connection = (QueueConnection) connectionFactory .createTopicConnection(); connection.start(); MessageConsumer consumer = null; Session session = connection.createQueueSession(false, Session.AUTO_ACKNOWLEDGE); queue = session.createQueue(queueName); consumer = session.createConsumer(queue); System.out.println(" Waiting for message (max 3) "); for (int i = 0; i < 3; i++) { Message message = consumer.receive(); processMessage(message); } System.out.println("Closing connection"); consumer.close(); session.close(); connection.close(); } public void processMessage(Message message) { try { if (message instanceof TextMessage) { TextMessage textMessage = (TextMessage) message; String text = textMessage.getText(); System.out.println("Received: " + text); } else { System.out.println(message.getStringProperty("testKey")); } } catch (Exception e) { e.printStackTrace(); } } }
consumer可以不online,producer发送消息后,consumer再启动也可以收到消息
相关推荐
本教程将详细阐述如何搭建ActiveMQ环境,并通过实例来解析其工作原理。 首先,让我们了解什么是ActiveMQ。ActiveMQ是一个开源的、跨平台的消息代理,支持多种协议,如OpenWire、STOMP、XMPP、AMQP和MQTT等。它能够...
message queue,也就是消息队列,也就是处理消息的,也就是处理JMS的,本文介绍了在Linux环境搭建activeMQ的过程。
在"apache-activemq-5.13.0-bin.tar.gz"这个压缩包中,包含了Apache ActiveMQ 5.13.0版本的所有相关文件,这将帮助我们搭建和运行一个完整的ActiveMQ服务器。 Apache ActiveMQ的核心功能包括: 1. **消息中间件**...
4. **队列生成者(Producer)**:在`ConfigMq`类中,我们定义了一个Bean `queue()`,用于创建一个ActiveMQQueue对象,队列的名称由`myqueue`属性决定。在`QueueProduce`类中,使用了`JmsMessagingTemplate`来发送...
- 在ActiveMQ中,Queue遵循“先进先出”(FIFO)原则,确保消息按照顺序被消费,每个消息只能被一个消费者接收。 - Queue适用于一对一的消息传递,适合处理需要保证消息顺序或只被单个消费者处理的情况。 5. **...
**Spring与ActiveMQ搭建JMS开发系统示例详解** 在Java世界中,消息队列(JMS,Java Message Service)是一种标准,它定义了API来创建、发送、接收和读取消息,允许应用程序进行异步通信。Spring框架是Java开发中的...
5. **消息队列和主题**:ActiveMQ提供两种消息模式:点对点(Queue)和发布/订阅(Topic)。点对点模式中,每个消息只有一个消费者,而发布/订阅模式下,一个消息可以被多个订阅者接收。 6. **消息过滤**:ActiveMQ...
2. **消息模式**:ActiveMQ支持多种消息模式,如点对点(Queue)、发布/订阅(Topic)、请求/响应(Request/Reply)等,以满足不同应用场景的需求。 3. **高级路由和过滤**:ActiveMQ提供了多种消息路由策略,如...
### ActiveMQ基础配置与应用详解 #### 一、ActiveMQ简介 ActiveMQ是Apache软件基金会提供的一个开源消息中间件...此外,通过PHP等语言实现消息的发送和接收也变得非常便捷,有助于快速搭建起基于消息驱动的应用系统。
本教程将深入探讨如何利用Apache ActiveMQ搭建、配置和集成到Spring框架中,以实现高效的数据通信。 首先,我们需要了解JMS的基本概念。Java消息服务(JMS)是Java平台上的一个标准接口,它定义了应用程序如何创建...
在这个"ActiveMQ简单Demo案例"中,我们将探讨如何使用ActiveMQ搭建服务器,并创建生成者(Producer)和消费者(Consumer)对象。 首先,我们需要理解JMS的概念。JMS是一个标准,定义了与消息传递系统交互的API,...
在本文中,我们将深入探讨如何通过 Maven 搭建 ActiveMQ 应用,并逐步理解入门示例代码 `activemqDemo01`。 ### 一、Maven 搭建环境 在开始之前,确保你的开发环境中已经安装了 Java 和 Maven。Maven 是一个项目...
本篇文章将详细讲解如何在实验环境中搭建并测试一个基本的ActiveMQ应用。 **一、ActiveMQ简介** ActiveMQ是Apache软件基金会的一个项目,它支持多种协议,包括JMS、STOMP、XMPP、AMQP等,能够处理各种消息模型,如...
在IT行业中,Spring Boot是一个非常流行的微服务框架,它简化了Spring应用的初始搭建以及开发过程。而ActiveMQ则是Apache出品的一款开源的消息中间件,它实现了多种消息协议,如OpenWire、AMQP、STOMP等,是Java消息...
4. 路由与过滤:ActiveMQ允许消息路由到特定的消费者,支持主题(Topic)和队列(Queue)两种模式,以及基于消息属性的过滤。 5. 安全性:支持用户认证和授权,可以保护消息的安全传输。 在"activemq_basic.rar"中...
在这个项目中,我们将深入探讨如何利用Springboot搭建一个简单的ActiveMQ发送和接收消息的系统。 ### 1. Springboot简介 Springboot是Spring框架的一个衍生项目,它旨在简化Spring应用的初始搭建以及开发过程。...
同时,动手实践是提升技能的关键,尝试搭建一个简单的ActiveMQ环境,并编写一些示例应用来发送和接收消息。 总之,ActiveMQ作为一款强大的消息中间件,对于理解和实践分布式系统设计至关重要。通过深入学习和实践,...
11. **内存中的JMS提供者**:在单元测试场景下,ActiveMQ可以作为一个内存中的消息提供者,简化测试环境搭建。 ActiveMQ在实际工作中的作用主要包括: 1. **异步处理**:消息中间件使得应用可以将耗时操作异步化,...
在IT行业中,Spring Boot是一个非常流行的Java开发框架,它简化了Spring应用的初始搭建以及开发过程。而ActiveMQ则是Apache出品的一款开源消息中间件,它实现了多种消息协议,如JMS(Java Message Service),用于在...