第44章 Message インターフェース
概要
本章では、Apache Camel コンポーネントの実装で任意のステップである Message インターフェースを実装する方法を説明します。
44.1. Message インターフェース リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
概要 リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
org.apache.camel.Message
タイプのインスタンスは、あらゆる種類のメッセージ(In または Out)を表すことができます。図44.1「メッセージの継承階層」 メッセージタイプの継承階層を に示します。コンポーネントにカスタムメッセージタイプを常に実装する必要はありません。多くの場合、デフォルトの実装 DefaultMessage
は十分です。
図44.1 メッセージの継承階層
Message インターフェース リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
例44.1「Message インターフェース」 は、org.apache.camel.Message
インターフェースの定義を示しています。
例44.1 Message インターフェース
メッセージメソッド リンクのコピーリンクがクリップボードにコピーされました!
リンクのコピーリンクがクリップボードにコピーされました!
Message インターフェースは以下のメソッドを定義します。
-
メッセージ ID の
setMessage
メソッド、getMessageId()メソッド、および setter メソッド。カスタムコンポーネントでメッセージ ID を使用する必要があるかどうかが実装の詳細となります。Id(
)、getMessageId() -
getExchange()
MYBACKUPDIR-ListenerExternalReturns は親エクスチェンジオブジェクトへの参照を作成します。 -
fault フラグの
is
aadClient-\":\"Getter メソッド、および setter メソッドは、このメッセージがフォールトメッセージであるかどうかを示します。Fault(
), setFault() -
getHeader()
、getHeaders()
、setHeader()
、setHeaders()
、removeHeader()
、hasHeaders()
: メッセージヘッダーのゲッターメソッドとセッターメソッド。通常、これらのメッセージヘッダーを使用して実際のヘッダーデータを保存するか、その他のメタデータを保存することもできます。 -
getBody()
、getMandatoryBody()
、setBody()
: メッセージボディーのゲッターメソッドとセッターメソッド。getMandatoryBody()アクセサーは、返されるボディーが null でないことを保証します。それ以外の場合は、InvalidPayloadException
例外が発生します。 -
getAttachment()
、getAttachments()
、getAttachmentNames()
、removeAttachment()
、addAttachment()
、setAttachments()
、hasAttachments()
: 添付ファイルを取得、設定、追加、および削除するメソッド。 -
copy()
: 現在のカスタムメッセージオブジェクトと同一の (メッセージ ID を含む) 新しいコピーを作成します。 -
copyFrom()
: 指定した汎用メッセージオブジェクトmessage
の完全なコンテンツ (メッセージ ID を含む) を現在のメッセージインスタンスにコピーします。このメソッドは どのような メッセージタイプからでもコピーできる必要があるため、汎用メッセージプロパティーがコピーされますが、カスタムプロパティーはコピーされません。 -
メッセージの実装が ID
を提供できる場合、createExchangeId()
は、このエクスチェンジの一意の ID を取り消します。それ以外の場合は、null
を返します。