26.7. 发送时的消息格式
通过 JMS 线发送的交换必须符合 JMS 消息规格。
对于 exchange.in.header,以下适用于标头 键 的规则:
-
以
JMS或JMSX开头的密钥被保留。 -
Exchange.in.headers键必须为 literals,并且所有有效 Java 标识符都必须是有效的 Java 标识符(请勿使用键名称中的句点)。 -
Camel 在消耗 JMS 消息时替换句点和连字符,在 Camel 使用消息时被 'DOT' 替代,并在 Camel 使用消息时替换反向替换。
-被 'HYPHEN' 替换,并在 Camel 消耗消息时替换反向替换。
-
另请参阅
jmsKeyFormatStrategy选项,该选项允许使用您自己的自定义策略来格式化密钥。
对于 exchange.in.header,以下规则适用于 标头值 :
-
该值必须是原语或其计数器对象(如
Integer、Long、Character)。类型、字符串、CharSequence、Date、BigDecimal和BigInteger都转换为其toString ()表示。所有其他类型都被丢弃。
如果 Camel 丢弃给定的标头值,Camel 将以 DEBUG 级别的类别记录 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}
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}