169.6. 送信時のメッセージ形式
JMS ネットワーク上で送信されるエクスチェンジは、JMS Message 仕様 に準拠する必要があります。
exchange.in.header の場合、以下のルールがヘッダー キー に適用されます。
-
JMSまたはJMSXで始まるキーが予約されています。 -
exchange.in.headersキーはリテラルで、すべて有効な Java 識別子である必要があります(キー名のドットは使用しないでください)。 -
Camel は、JMS メッセージの使用時にドットとハイフンを置き換え
ます。
. はDOTに置き換え、Camel がメッセージを消費すると逆の置換になります。
はHYPHENに置き換えられます。は、Camel がメッセージを消費する際に逆の置換になります。 -
また、オプションの
jmsKeyFormatStrategyも併せて参照してください。この場合、キーのフォーマットに独自のカスタムストラテジーを使用できます。
exchange.in.header では、ヘッダーの 値 に以下のルールが適用されます。
-
値はプリミティブまたはカウンターオブジェクトでなければなりません(例:
Integer、Long、Characterなど)。types、String、CharSequence、DateBigDecimal、およびBigIntegerはすべてtoString()表現に変換されます。その他のタイプはすべてドロップされます。
指定のヘッダー値をドロップすると、Camel はカテゴリー org.apache.camel.component.jms.JmsBinding を DEBUG レベルでログに記録します。以下に例を示します。
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}