package org.abin.lee.activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.DeliveryMode;
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.MessageProducer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
public class MapSender {
private static final int SEND_NUMBER = 5;
public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
Connection connection = null;
Session session;
Destination destination = null;
MessageProducer messageProducer;
try {
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);
MapMessage map=session.createMapMessage();
map.setBoolean("flag", true);
map.setDouble("dou", 1.01);
map.setInt("zx", 88);
map.setString("zifu", "zzzzzz");
messageProducer.send(map);
session.commit();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package org.abin.lee.activemq;
import javax.jms.Connection;
import javax.jms.ConnectionFactory;
import javax.jms.Destination;
import javax.jms.MapMessage;
import javax.jms.MessageConsumer;
import javax.jms.Session;
import org.apache.activemq.ActiveMQConnection;
import org.apache.activemq.ActiveMQConnectionFactory;
public class MapReceiver {public static void main(String[] args) {
ConnectionFactory connectionFactory = new ActiveMQConnectionFactory(
ActiveMQConnection.DEFAULT_USER,
ActiveMQConnection.DEFAULT_PASSWORD, "tcp://localhost:61616");
Connection connection = null;
Session session;
Destination destination;
MessageConsumer consumer;
try {
connection = connectionFactory.createConnection();
connection.start();
session = connection.createSession(Boolean.FALSE,
Session.AUTO_ACKNOWLEDGE);
destination = session.createQueue("FirstQueue");
consumer = session.createConsumer(destination);
while(true){
MapMessage map=(MapMessage)consumer.receive(500000);
if (null != map) {
boolean flag=map.getBoolean("falg");
System.out.println("AcitveMQ 接收到的消息 flag="+flag);
double dou=map.getDouble("dou");
System.out.println("AcitveMQ 接收到的消息 dou="+dou);
int zx=map.getInt("zx");
System.out.println("AcitveMQ 接收到的消息 zx="+zx);
String zifu=map.getString("zifu");
System.out.println("AcitveMQ 接收到的消息 zifu="+zifu);
}else
break;
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
4. **消息类型**:JMS定义了五种消息类型:TextMessage(文本消息)、ObjectMessage(Java对象)、BytesMessage(字节流)、MapMessage(键值对)和StreamMessage(连续的数据流)。 5. **持久化**:ActiveMQ支持...
- **StreamMessage**:携带原始值流。 - **Message**:不包含有效负载的消息。 - **消息模型**: - **Point-to-Point (P2P)**:点对点消息模型,确保每条消息只被一个消费者接收。 - **Publish/Subscribe (Pub/...
- **StreamMessage**:包含一系列基本数据类型的有序流。 - **MapMessage**:包含一系列键值对的数据结构,类似于Java中的Map。 - **TextMessage**:包含文本消息。 - **ObjectMessage**:包含序列化的Java对象。 - ...
- **Message**:消息对象,包括消息头(必填)、属性(可选)和消息体(可选),有五种类型:TextMessage、MapMessage、ByteMessage、StreamMessage和ObjectMessage。 3. ActiveMQ的安装与运行 ActiveMQ的安装非常...
JMS 定义的消息类型有 TextMessage、MapMessage、BytesMessage、StreamMessage 和 ObjectMessage。 JMS 可靠性机制 JMS 提供了以下几种可靠性机制: * 确认机制:JMS 消息只有在被确认之后,才认为已经被成功地...
ActiveMQ 支持多种消息类型,如 TextMessage、ObjectMessage 和 StreamMessage 等。 - **生产者(Producer)**:生产者是创建和发送消息的组件,它负责将应用程序的数据封装成消息并发送到消息队列。 - **消费者...
ActiveMQ 支持多种消息类型,如 TextMessage、ObjectMessage、MapMessage、StreamMessage 等,可以根据应用需求选择合适的消息格式。例如,TextMessage 用于传递文本数据,ObjectMessage 可以序列化 Java 对象作为...
- **StreamMessage**: 用于发送Java基本类型的有序数据流。 - **MapMessage**: 用于发送键值对数据。 - **TextMessage**: 用于发送纯文本字符串。 - **ObjectMessage**: 用于发送序列化的Java对象。 - **...
消息体则定义了消息内容的具体类型,JMS定义了文本消息(TextMessage)、映射消息(MapMessage)、字节消息(BytesMessage)、流消息(StreamMessage)和对象消息(ObjectMessage)。 JMS规范还定义了可靠性机制,...
消息体包括五种类型:ByteMessage、MapMessage、ObjectMessage、StreamMessage和TextMessage。 通信方式 JMS提供了两种通信模式: 1. 点对点(Point-to-Point):每个消息仅有一个消费者,消息发送后,消费者可以...
常见的消息类型有`TextMessage`、`MapMessage`、`BytesMessage`、`StreamMessage`和`ObjectMessage`。 7. **目的地 (Destination)** - 用来指定消息的目标和消息来源的对象,分为两种类型:队列(Queue)和主题...
4. **Stream消息**:`StreamMessage`类似于Byte消息,但它允许连续不断地写入和读取字节流,而不必一次性加载整个消息到内存中,适合处理大容量数据。 5. **Object消息**:Spring提供了一个特殊的功能,允许我们...
* 消息体:JMS定义的消息类型有TextMessage、MapMessage、BytesMessage、StreamMessage和ObjectMessage。 5. JMS可靠性机制 * 确认:JMS消息只有在被确认之后,才认为已经被成功地消费了。 * 持久性:JMS支持以下...
根据数据类型,JMS 消息有五种主要类型:TextMessage(文本消息)、ObjectMessage(序列化对象)、MapMessage(属性集合)、BytesMessage(字节数组)和 StreamMessage(原始值流)。 **ActiveMQ 的安装与配置** ...
- **消息体** (`Message Body`):JMS 定义了多种消息类型,包括 `TextMessage`、`MapMessage`、`BytesMessage`、`StreamMessage` 和 `ObjectMessage`。 #### 1.2 JMS 的可靠性机制 JMS 规范提供了一系列机制来保证...
- **StreamMessage**:用于发送原始数据流,如整型、浮点型等基本数据类型。 - **MapMessage**:用于发送键值对数据,类似于Map集合。 - **TextMessage**:用于发送文本字符串消息。 - **ObjectMessage**:用于发送...
消息体支持多种类型,如TextMessage、MapMessage、BytesMessage、StreamMessage和ObjectMessage。 JMS提供了可靠性机制来确保消息传输的完整性: 1. **确认**(Acknowledgement):消息只有在确认后才被认为是被...
- `StreamMessage`:连续流式数据。 5. **持久化和事务**: - ActiveMQ支持消息持久化,即使服务器重启,未消费的消息也不会丢失。 - 通过`Session`的事务管理,可以确保消息的原子性,确保消息要么全部成功发送...