178.8. 送信時のメッセージ形式

JMS ワイヤを介して送信される交換は、JMS メッセージ仕様 に準拠する必要があります。

exchange.in.header の場合、次のルールがヘッダー キー に適用されます。

  • JMS または JMSX で始まるキーは予約されています。
  • exchange.in.headers キーはリテラルで、すべて有効な Java 識別子である必要があります (キー名にドットを使用しないでください)。
  • Camel は、JMS メッセージを消費するときにドットとハイフンを置き換え、その逆を行います。
    .DOT に置き換えられ、Camel がメッセージを消費するときは逆の置き換えになります。
    -HYPHEN に置き換えられ、Camel がメッセージを消費するときは逆の置き換えになります。
  • オプション jmsKeyFormatStrategy も参照してください。これにより、キーのフォーマットに独自のカスタム戦略を使用できます。

exchange.in.header の場合、次のルールがヘッダー に適用されます。

  • 値は、プリミティブまたはそのカウンターオブジェクト (IntegerLongCharacter など) である必要があります。タイプ StringCharSequenceDateBigDecimal、および BigInteger はすべて、それらの toString() 表現に変換されます。他のすべてのタイプはドロップされます。

Camel は、特定のヘッダー値を削除すると、カテゴリー org.apache.camel.component.jms.JmsBindingDEBUG レベルでログに記録します。以下に例を示します。

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}