在JMS1.1规范中规定了5种JMS消息类型,分别如下:
1.创建一个TextMessage
TextMessage message;
message = session.createTextMessage();
2.解包一个TextMessage
去解包一个TextMessage类型的消息,客户端可以使用Message.getText方法:
String stockInfo;
stockInfo = message.getText();
3.创建一个BytesMessage
byte[] stockData;
BytesMessage message;
message = session.createBytesMessage();
message.writeBytes(stockData);
4.解包一个BytesMessage
当接收到一个ByteMessage时,可以使用下面的方式来解包:
byte[] stockInfo;
int length;
length = message.readBytes(stockData);
消息体被拷贝到字节数组,客户端程序可以读取这个树组来解释数据。
5.创建一个MapMessage
MapMessage message;
message = session.createMapMessage();
...其他代码
message.setString("Name", "CN-Java");
message.setDouble("Value", stockValue);
message.setLong("Time", stockTime);
message.setDouble("Diff", stockDiff);
message.setString("Info", "Recent server announcement causes market interest");
6.解包一个MapMessage
stockName = message.getString("Name");
stockDiff = message.getDouble("Diff");
stockValue = message.getDouble("Value");
stockTime = message.getLong("Time");
如果你想得到整个元素的列表,可以使用MapMessage.getMapNames方法来获得。
7.创建一个StreamMessage
和MapMessage相似,一个应用程序可以按序列发送多个字段到一个消息中,这些字段都是原始类型的,要做这些,你可以使用一个StreamMessage,
message.writeString(stockName);
message.writeDouble(stockValue);
message.writeLong(stockTime);
message.writeDouble(stockDiff);
message.writeString(stockInfo);
8.解包一个StreamMessage
StreamMessage中的元素必须按照被写入的顺序读出:
stockName = message.readString();
stockValue = message.readDouble();
stockTime = message.readLong();
stockDiff = message.readDouble();
stockInfo = message.readString();
9.创建一个ObjectMessage
ObjectMessage message;
message = session.createObjectMessage();
message.setObject(stockObject);
10.解包ObjectMessage
去解包ObjectMessage,使用ObjectMessage.getObject得到对象,一但对象被取出来,客户端程序使用Java造型语句将对象还原成原始对象。
StockObject stockObject;
stockObject = (StockObject)message.getObject();
相关推荐
另一方面,JMS是一种API,允许应用程序创建、发送、接收和读取消息,通常用于分布式系统中的可靠通信。 要实现HTTP到JMS的转换,我们需要在WSO2 ESB中配置一个Mediator。Mediator是ESB中处理消息的组件,它根据预...
3. **消息类型**:JMS支持多种类型的消息,包括文本消息、映射消息、流消息等。 4. **事务支持**:为了确保数据完整性,JMS提供了事务处理的支持。 5. **安全性**:JMS支持身份验证和授权机制,可以实现安全通信。 ...
JMS定义了几种消息类型,包括: - **TextMessage**:用于纯文本消息。 - **ObjectMessage**:用于序列化的Java对象。 - **MapMessage**:用于键值对形式的数据。 - **BytesMessage**:用于字节流数据。 - **...
消息中间件原理及JMS简介,是IT领域中关于企业级软件集成的重要概念。中间件作为连接不同系统和应用的桥梁,它在分布式系统中扮演着至关重要的角色。本文主要探讨了消息中间件的原理,以及Java消息服务(JMS)这一...
3. **jms规范教程.pdf** - 这是一个关于JMS规范的教程,可能详细讲解了JMS接口、消息类型(如点对点和发布/订阅模型)、消息队列和主题等核心概念,为理解JMS和ActiveMQ的工作原理提供了基础。 综上所述,这个主题...
从给定的代码片段来看,主要涉及到JMS消息驱动Bean(MDB)的实现,这在Java EE环境中是处理消息队列的一种常见方式。 ### JMS与消息驱动Bean JMS是一种Java平台中的消息中间件规范,允许分布式系统中的组件通过...
在实际应用中,消息可能会包含不同类型的数据,例如JSON、XML等。Spring支持消息转换,允许我们将消息体自动转换为Java对象,或者将Java对象转换为消息体。这可以通过实现`MessageConverter`接口或使用内置的转换器...
JmsTemplate可以自动将各种类型如String、Byte[]等转换为响应的JMS消息对象类型,当然也可以自己写Converter转换复杂的消息。JmsTemplate常用的方法有send、convertAndSend、receive和convertAndReceive。 使用JMS ...
2. **Message Listener Container**:Spring提供了两种类型的消息监听容器——`DefaultMessageListenerContainer`和`SimpleMessageListenerContainer`。它们负责管理消息监听器的生命周期,并自动处理JMS会话和消息...
同时,还需要定义消息的类型(如TextMessage、ObjectMessage等)以及如何将本地数据转化为可发送的消息。 2. **从MQ中读取信息保存到本地**:这是另一个关键的场景,涉及到从ActiveMQ的消息队列消费信息,并将其...
MessageConverter是Spring JMS中的一个重要组件,它的主要职责是将Java对象与JMS消息类型(如TextMessage或ObjectMessage)之间进行转换。Spring默认提供了几种常见的MessageConverter,如SimpleMessageConverter和...
JMS定义了多种消息类型,如TextMessage、ObjectMessage、BytesMessage等。 - **Destination**:消息的目标,可以是Queue或Topic。Queue对应点对点模型,Topic对应发布/订阅模型。 - **Producer**:负责创建并发送...
1. **JMS模板(JmsTemplate)**: 这是Spring提供的一个核心工具类,简化了发送和接收JMS消息的过程。它提供了同步和异步发送消息的方法,支持点对点(P2P)和发布/订阅(Pub/Sub)模型。 2. **MessageListener容器*...
7. 通过JavaJMS指定相应的结构数据消息订阅者(dev_aq_demo)和图片数据消息订阅者(file_aq_demo)将对应消息队列中的AQ消息出队,通过JPublisher转换的自定义载荷类型,解析为相应变更数据。 #### 五、总结 通过...
JMS支持两种类型的消息模型:点对点(Point-to-Point, Queue)和发布/订阅(Publish/Subscribe, Topic)。 在本案例中,我们将深入探讨如何在JBoss ESB中利用JMS Topic实现消息通信。 #### 二、JMS Topic应用场景 ...
根据消息主体的内容,JMS定义了几种消息类型,如TextMessage、ObjectMessage、MapMessage、BytesMessage、StreamMessage和无有效负载的Message。 **ActiveMQ详解** Apache ActiveMQ是基于JMS规范的开源消息中间件...