178.8. 发送时的消息格式

通过 JMS 线路发送的交换必须符合 JMS Message spec

对于 exchange.in.header,以下规则适用于标头

  • JMSJMSX 开头的密钥被保留。
  • Exchange.in.headers 键必须是文字,且所有有效的 Java 标识符(不要在键名称中使用点)。
  • 当使用 JMS 消息:
    时,Camel 替换了点和连字符以及反向替换 当 Camel 消耗消息时,Camel 会被 HYPHEN 替换。
    -HYPHEN 替换,并在 Camel 使用消息时反向替换。
  • 另请参阅 jmsKeyFormatStrategy 选项,它允许使用您自己的自定义策略格式化密钥。

对于 exchange.in.header,以下规则适用于 标头值

  • 该值必须是原语或其计数器对象(如 IntegerLongCharacter)。类型、StringCharSequenceDate、bigD ecimal 和 BigInteger 都被转换为 String () 表示。所有其他类型被丢弃。

如果 Camel 丢弃了给定标头值,则 Camel 会记录类别 org.apache.camel.component.jms.JmsBinding例如:

2008-07-09 06:43:04,046 [main           ] DEBUG JmsBinding
  - Ignoring non primitive header: order of class: org.apache.camel.component.jms.issues.DummyOrder with value: DummyOrder{orderId=333, itemId=4444, quantity=2}