Producer
package activemq;
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.ActiveMQConnectionFactory;
public class SendMessage {
private static final String url = "tcp://localhost:61616";
private static final String QUEUE_NAME = "choice.queue";
protected String expectedBody = "<hello>world!</hello>";
public void sendMessage() throws JMSException {
Connection connection = null;
try {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
url);
connection = (Connection) connectionFactory.createConnection();
connection.start();
Session session = (Session) connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(QUEUE_NAME);
MessageProducer producer = session.createProducer(destination);
TextMessage message = session.createTextMessage(expectedBody);
message.setStringProperty("headname", "remoteB");
producer.send(message);
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
SendMessage sndMsg = new SendMessage();
try {
sndMsg.sendMessage();
} catch (Exception ex) {
System.out.println(ex.toString());
}
}
}
Consumer
package activemq;
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.Session;
import javax.jms.TextMessage;
import org.apache.activemq.ActiveMQConnectionFactory;
public class ReceiveMessage {
private static final String url = "tcp://localhost:61616";
private static final String QUEUE_NAME = "choice.queue";
public void receiveMessage() {
Connection connection = null;
try {
try {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
url);
connection = connectionFactory.createConnection();
} catch (Exception e) {
System.out.println(e.toString());
}
connection.start();
Session session = connection.createSession(false,
Session.AUTO_ACKNOWLEDGE);
Destination destination = session.createQueue(QUEUE_NAME);
MessageConsumer consumer = session.createConsumer(destination);
consumeMessagesAndClose(connection, session, consumer);
} catch (Exception e) {
System.out.println(e.toString());
}
}
protected void consumeMessagesAndClose(Connection connection,
Session session, MessageConsumer consumer) throws JMSException {
for (int i = 0; i < 1;) {
Message message = consumer.receive(1000);
if (message != null) {
i++;
onMessage(message);
}
}
System.out.println("Closing connection");
consumer.close();
session.close();
connection.close();
}
public void onMessage(Message message) {
try {
if (message instanceof TextMessage) {
TextMessage txtMsg = (TextMessage) message;
String msg = txtMsg.getText();
System.out.println("Received: " + msg);
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String args[]) {
ReceiveMessage rm = new ReceiveMessage();
rm.receiveMessage();
}
}
分享到:
相关推荐
在本文中,我们将深入探讨ActiveMQ,一个基于Java消息服务(JMS)规范的开源消息中间件。ActiveMQ因其高效性、可扩展性、稳定性和安全性,在企业级消息通信领域得到了广泛应用。它允许应用程序通过解耦生产者和消费...
在实际的开发示例中,开发者需要按照正确的步骤和命令来操作,以确保安装和配置过程的顺利进行。在开发中,开发者需要将ActiveMQ与C#应用程序结合,使用***框架来开发消息队列系统,这涉及到配置连接工厂、队列目的...
在ActiveMQ示例中,可能需要用到Gradle来管理项目的依赖和构建过程。 **集成JMS与ActiveMQ**: 1. 首先,确保在项目中添加了ActiveMQ客户端库。如果是Gradle项目,可以在`build.gradle`文件中添加如下依赖: ```...
在本项目示例中,我们将深入探讨如何使用MyEclipse 10开发基于ActiveMQ的消息通信应用。 1. **ActiveMQ基础概念** - **消息队列**: 消息队列是ActiveMQ的核心,它存储和转发消息,确保消息的可靠传输。 - **生产...
最后,我们可以看到"demo"文件夹中可能包含了一个简单的示例项目,展示如何在Android客户端和服务端实现基于ActiveMQ和MQTT的推送功能。这个示例代码会帮助初学者更好地理解上述概念,并动手实践。 总结来说,利用...
Apache ActiveMQ是业界广泛使用的开源消息中间件,它基于Java平台并遵循JMS(Java Message Service)标准。ActiveMQ 5.7版本是其历史上的一个重要版本,提供了稳定且高效的消息传递服务。在这个版本中,我们可以深入...
本示例主要关注三个流行的消息队列服务:ActiveMQ、RabbitMQ以及AliyunMQ,它们都是基于Java消息服务(JMS)的实现。 首先,ActiveMQ是由Apache开发的开源消息代理,它是JMS 1.1规范的实现者。ActiveMQ支持多种协议...
在本文中,我们将深入探讨如何使用Maven构建一个基于ActiveMQ的简单实例。ActiveMQ是Apache软件基金会开发的一款开源消息代理,它实现了多种消息协议,如JMS(Java消息服务)、AMQP(高级消息队列协议)等,为企业级...
5. **examples**:示例代码,帮助开发者快速理解和开始使用ActiveMQ。 6. **webapps**:包含Web管理控制台的WAR文件和其他Web应用程序。 要开始使用ActiveMQ,你需要编辑conf/activemq.xml配置文件,根据需求设置...
【标题】:“实验三 消息中间件应用开发:ActiveMQ实现单线程多队列” 在IT领域,消息中间件是一种重要的软件架构组件,它主要用于应用...在完成实验后,学习者应具备设计和实现基于ActiveMQ的消息处理系统的能力。
根据压缩包内的文件名 "ActiveMQTest",我们可以推测这是一个包含测试代码的文件或目录,可能包含了连接 ActiveMQ 服务器的配置、发送和接收消息的示例代码。 详细的知识点可能包括: 1. **ActiveMQ 简介**:...
本篇文章将详细介绍如何将ActiveMQ与SpringBoot进行整合,并提供相关代码示例。 **一、ActiveMQ简介** ActiveMQ是基于Java的消息中间件,它提供了多种语言的客户端库,包括Java、C++、Python等,使得跨平台的通信...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于开放标准的Java消息服务(JMS)实现,能够处理各种消息传递模式,如点对点、发布/订阅、请求/响应等。在这个示例中,我们将探讨ActiveMQ的核心概念、...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它基于开放标准AMQP(Advanced Message Queuing Protocol)协议,提供高效、可靠的消息传输服务。在Java和JavaScript环境中,ActiveMQ能够作为一个桥梁,允许...
4. **测试和示例**:项目可能包含了一些测试用例或示例代码,用于演示如何启动、发送和接收消息。 在"activemq_spr3"这个压缩包文件中,你可能会找到以下内容: - `pom.xml`:Maven项目的配置文件,包含了对Spring...
`TestMQ` 这个文件可能是用于测试 ActiveMQ 功能的示例或者配置。通常,这样的测试文件会包含创建连接、发布消息、订阅消息和断开连接等操作的代码。通过运行 `TestMQ`,开发者可以验证 ActiveMQ 的配置是否正确,...
标题中的“ActiveMQ与Zookeeper集群测试代码”指的是一个实验或示例项目,旨在演示如何结合这两个组件来构建高可用的消息传递环境。Zookeeper在这里的角色可能是用来管理ActiveMQ集群的状态,实现节点间的选举和故障...
Apache ActiveMQ是基于Java消息服务(Java Message Service,简称JMS)的开源消息中间件,由Apache软件基金会开发。它允许应用程序通过发送和接收消息来实现异步通信,从而解耦了系统中的组件,提高了系统的可扩展性...
在这个"activemq_basic.rar"压缩包中,我们可以预见到是一些关于ActiveMQ的基础教程或者示例代码,用于帮助开发者了解和学习如何使用ActiveMQ进行消息传递。 首先,让我们来了解一下JMS(Java消息服务)的基本概念...
Apache ActiveMQ是开源的、基于Java消息服务(JMS)的应用服务器,它是Apache软件基金会的一部分。这个名为"apache-activemq-5.17.3"的压缩包包含了ActiveMQ的5.17.3版本,这是一个稳定且功能丰富的发布版本。在深入...