消息由消息头和消息体组成。消息头包含了用于消息路由和标识的字段;消息体包含了被发送的应用数据。
1.JMS 消息由以下部分组成:
消息头——所有的消息都支持相同的头字段集。头字段包含了客户端和提供商都要
使用的用于标识和路由消息的值。
属性——除了标准的头字段外,消息提供了一个内置的功能来向消息增加可选的头
字段。
应用专有属性—为消息增加应用专有的头字段提供的机制。
标准属性—JMS 定义的一些标准属性,它们相当于可选的头字段。
提供商专有属性—在集成 JMS 客户端和JMS 提供商本地客户端时可能会用到
提供商专有的属性。JMS 为这些属性定义了命名规范。
消息体——JMS 定义了几个消息体类型,这些类型覆盖了大部分当前使用的消息风
格。
2.JMS 提供了五种形式的消息体。每种形式都由一个消息接口来定义:
StreamMessage——消息体包含的是java 原始值流。它连续的填充和读。
MapMessage——消息体包含一系列名字‐值对儿,其中名字是String,值是Java 原
始类型。条目可以被枚举器连续获取也可以按名字随机获取。条目的顺序没有定义。
TextMessage——消息体包含的是java.lang.String。这个消息类型是基于一个假设:
String 消息被广泛的使用。这是因为XML 很可能变成一个代表JMS 消息内容的流行
机制。
ObjectMessage——消息包含了可序列化的Java 对象。如果需要java 对象的集合,
那么可以使用在JDK1.2 中提供的集合类。
BytesMessage——消息包含了一个未解释的字节流。这个消息类型用于按字面编码
的消息体去匹配一个存在的消息格式。在许多情况下,它可能用于一种其他未定义
的消息类型。尽管JMS 允许消息属性使用字节消息,但通常不会使用,因为这样
可能影响消息的格式。