25.6. 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

对象

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

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

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.