/**
* 基于tcp协议接收JMS消息
* @param args 参数
*/
public static void main(String[] args)
{
ConnectionFactory connFactory;
Connection conn = null;
Session session;
Destination destination;
MessageConsumer consumer;
try {
connFactory = new ActiveMQConnectionFactory("tcp://127.0.0.1:61616");
conn = connFactory.createConnection("user1", "password1");
conn.start();
// 第一个参数为 false, 表示不使用事务
session = conn.createSession(false, Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue(JMSInfo.QUEUE_NAME);
// destination = session.createTopic(JMSInfo.TOPIC_NAME);
consumer = session.createConsumer(destination);
consumer.setMessageListener(new MessageListener()
{
@Override
public void onMessage(Message msg)
{
try {
if (msg instanceof TextMessage) {
TextMessage textMsg = (TextMessage)msg;
System.out.println("received text: " + textMsg.getText());
} else if (msg instanceof MapMessage){
ActiveMQMapMessage map = (ActiveMQMapMessage)msg;
System.out.println("received map: ");
printMapMessage(map);
}
} catch (Exception e) {
e.printStackTrace();
}
}
});
} catch (Exception e) {
e.printStackTrace();
} finally {
// if (null != conn) {
// try {conn.close(); } catch (Exception e) {}
// }
}
}
/**
* 输出 map 消息
* @param map 参数
*/
@SuppressWarnings("unchecked")
public static void printMapMessage(ActiveMQMapMessage map) throws Exception
{
String key = null;
String value = null;
// print headers
System.out.println("JMS Header:");
Enumeration<String> headerKeys = map.getPropertyNames();
while (headerKeys.hasMoreElements()) {
key = headerKeys.nextElement();
value = map.getStringProperty(key);
System.out.println(key + " : " + value);
}
// print body
System.out.println("JMS Body:");
Enumeration<String> bodyKeys = map.getMapNames();
while (bodyKeys.hasMoreElements()) {
key = bodyKeys.nextElement();
value = map.getString(key);
System.out.println(key + " : " + value);
}
}
分享到:
相关推荐
new ActiveMQ::CMSConnectionFactory("tcp://localhost:61616")); ``` 创建会话和消费者: ```cpp std::auto_ptr<cms::Session> session = connection.createSession(); std::auto_ptr<cms::MessageConsumer> ...
消息队列确保消息的可靠传输,即使在发送方和接收方之间发生故障时也能保持数据的完整性。 2. **JMS兼容性**:ActiveMQ完全符合JMS 1.1规范,这意味着它能与任何JMS兼容的客户端库无缝集成,提供标准API进行消息...
- Apache ActiveMQ是业界广泛使用的消息代理,提供可靠的消息传递服务,支持多种协议,如OpenWire、STOMP、AMQP、MQTT和WS-Notification。 - 版本5.8.0是一个稳定版本,包含了之前版本的改进和新特性,旨在提高...
7. **网络连接**:ActiveMQ可以通过TCP/IP协议与其他服务器或客户端通信,并且支持SSL/TLS加密,确保数据传输的安全性。 8. **性能优化**:ActiveMQ内置了多种优化策略,如批处理、预取策略,以提高消息处理速度和...
ActiveMQ 是一个开源的消息中间件,它遵循开放消息模型(Open Message Model)并支持多种协议,包括AMQP、STOMP、XMPP等。ActiveMQ-cpp是ActiveMQ的C++客户端库,允许开发者在C++应用程序中使用ActiveMQ的功能。 在...
1. **消息队列**:ActiveMQ作为消息中间件,能够接收、存储并转发消息。它支持点对点(P2P)和发布/订阅(Pub/Sub)两种消息模型。 2. **协议支持**:ActiveMQ不仅支持JMS,还支持AMQP、STOMP、MQTT等多种消息协议...
ActiveMQ是Apache软件基金会的一款开源消息中间件,它提供了一个高效、灵活且强大的消息传递平台,支持多种协议,如OpenWire、AMQP、STOMP等。在C++编程环境下,ActiveMQ提供了名为ActiveMQ-CPP的库,使得C++开发者...
1. 消息与队列:ActiveMQ提供了一种消息模型,其中消息被发送到队列或主题中,然后由消费者进行接收。队列遵循“先入先出”(FIFO)原则,而主题支持多播,允许多个订阅者同时接收消息。 2. 代理与持久化:ActiveMQ...
在ActiveMQ中,传输组件是负责在网络间发送和接收消息的核心部分。GNet传输层提供了一种通用的方式来处理不同类型的网络连接,如TCP/IP,SSL/TLS等。它封装了网络I/O操作,使得ActiveMQ可以轻松地适应各种网络环境。...
此外,ActiveMQ支持多种协议和特性,如topic、持久化、事务消息等,可以根据项目需求进一步探索和利用。 这个简单的Demo展示了如何在Spring Boot中集成ActiveMQ进行消息接收。通过这种方式,你可以构建出一个可靠的...
集成JGroups后,ActiveMQ可以创建一个分布式的、无中心的 broker 集群,每个broker都可以接收和发送消息,当某台机器出现故障时,集群中的其他节点可以接管其职责,确保服务的连续性。此外,JGroups的多播特性使得...
ActiveMQ是Apache软件基金会开发的一款开源的消息代理,它实现了多种消息协议,如OpenWire、STOMP、AMQP、MQTT和XMPP,使得应用程序可以通过这些协议进行异步通信。在描述中提到的"rar包下载,依赖包"意味着这个RAR...
2. **ActiveMQ Broker**:`activemq-broker-5.9.1.jar`包含了ActiveMQ消息代理的核心组件,它负责接收、存储和转发消息。此库实现了JMS服务器的角色,提供多种协议支持,如OpenWire、STOMP、AMQP等,并具备高可用性...
Apache ActiveMQ是开源社区中最流行的Java消息代理,它支持多种消息协议,包括开放消息传递应用接口(Open Message Passing Interface, JMS)和高级消息队列协议(Advanced Message Queuing Protocol, AMQP)。...
Apache ActiveMQ是Apache软件基金会的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker,JMS)标准,提供高效、可靠的消息传递服务。在本教程中,我们将深入探讨Apache ActiveMQ 5.11.2版本的核心...
ActiveMQ支持多种协议,包括开放标准的TCP/IP协议以及基于HTTP/HTTPS的STOMP和AMQP,这使得它能与各种编程语言和平台无缝集成。 在ActiveMQ 5.16.5这个版本中,我们可以期待一些关键特性,例如: 1. **持久化**:...
它支持多种传输协议,包括TCP/IP、HTTP、HTTPS以及NMS(.NET Messaging System),同时兼容多种消息模型,如点对点(Point-to-Point)、发布/订阅(Publish/Subscribe)模式。 **版本5.1.0** 5.1.0是ActiveMQ的一个...
【ActiveMQ-JMS简单实例使用Tomcat】是一个关于如何在Tomcat环境下集成并使用ActiveMQ进行JMS消息传递的初级教程。ActiveMQ是一款开源的消息中间件,它遵循JMS(Java Message Service)1.1规范,能兼容J2EE1.4及以上...
ActiveMQ是Apache软件基金会开发的一款开源消息中间件,它遵循开放消息传递协议(Open Message Broker Protocol,也称为AMQP)并支持多种协议,如STOMP、XMPP等。Ajax(Asynchronous JavaScript and XML)是一种在...
Apache ActiveMQ是一个高性能、轻量级的消息代理,它支持多种消息协议,如OpenWire、STOMP、AMQP和XMPP。它提供了一个统一的API,使得开发者可以方便地在不同的消息协议间切换。ActiveMQ 5.4.3是该产品的一个稳定...