179.7. JMS 和 Camel 之间的消息映射

Camel 自动映射 javax.jms.Messageorg.apache.camel.Message 的消息。

发送 JMS 消息时,Camel 会将消息正文转换为以下 JMS 消息类型:

正文类型JMS 消息注释

字符串

javax.jms.TextMessage

 

org.w3c.dom.Node

javax.jms.TextMessage

DOM 将转换为 字符串

Map

javax.jms.MapMessage

 

java.io.Serializable

javax.jms.ObjectMessage

 

byte[]

javax.jms.BytesMessage

 

java.io.File

javax.jms.BytesMessage

 

java.io.Reader

javax.jms.BytesMessage

 

java.io.InputStream

javax.jms.BytesMessage

 

java.nio.ByteBuffer

javax.jms.BytesMessage

 

在收到 JMS 消息时,Camel 会将 JMS 消息转换为以下正文类型:

JMS 消息正文类型

javax.jms.TextMessage

字符串

javax.jms.BytesMessage

byte[]

javax.jms.MapMessage

map<String, Object>

javax.jms.ObjectMessage

对象

179.7.1. 禁用 JMS 消息的自动映射

您可以使用 mapJmsMessage 选项禁用上面的自动映射。如果禁用,Camel 不会尝试映射收到的 JMS 消息,而是直接将其用作载荷。这样,您可以避免映射开销,并让 Camel 仅通过 JMS 消息。例如,它甚至允许您通过 classpath 上的类路由 javax.jms.ObjectMessage JMS 消息。