第212章 MIME Multipart DataFormat
Camel バージョン 2.17 から利用可能
MIME 分割メッセージをメッセージボディーとして持つ Camel メッセージに添付された Camel メッセージを変換できるこのデータ形式(アタッチメントなし)。
これのユースケースとして、ユーザーは、特別なプロトコル実装(HTTP エンドポイント経由での MIME マルチパート送信)またはトンネリングソリューション(例: camel-jms はアタッチメントをサポート)として、直接サポートしないエンドポイントを介してアタッチメントを送信できるようにすることです。 JMS キューへメッセージを送信し、JMS キューからメッセージを受信して再度マーシャリングします(アタッチメントのあるメッセージボディーに)。
mime-multipart データフォーマットの marshal オプションは、添付ファイルを持つメッセージを MIME-Multipart メッセージに変換します。パラメーター「multipartWithoutAttachment」を true に設定すると、1 つの部分を持つマルチパートメッセージに添付せずにメッセージをマーシャルします。パラメーターが false に設定されている場合は、メッセージをそのまま残します。
mulitpart の MIME ヘッダー("MIME-Version" および "Content-Type" は camel ヘッダーとしてメッセージに設定されます)。パラメーター "headersInline" を true に設定すると、いつでも MIME マルチパートメッセージも作成されます。
さらに、マルチパートの MIME ヘッダーは、Camel ヘッダーとしてではなく、メッセージボディーの一部として記述されます。
mime-multipart データフォーマットの unmarshal オプションは、MIME-Multipart メッセージを添付ファイルと共に camel メッセージに変換し、他のメッセージをそのまま残します。MIME-Multipart メッセージの MIME ヘッダーは Camel ヘッダーとして設定する必要があります。アンマーシャリングは、「Content-Type」ヘッダーが「multipart」タイプに設定されている場合にのみ行われます。オプション "headersInline" が true に設定されている場合、ボディーは常に MIME メッセージとして解析されます。メッセージボディーがストリームで、ストリームキャッシュが有効になっていない場合、メッセージボディーに MIME ヘッダーを持つ MIME メッセージがないメッセージのボディーは空のメッセージに置き換えられます。Camel バージョン 2.17.1 まで、ボディータイプとストリームキャッシュ設定に関係なく、MIME マルチパートメッセージを含まないすべてのメッセージボディーが発生します。
212.1. オプション リンクのコピーリンクがクリップボードにコピーされました!
MIME Multipart データフォーマットは、以下に示す 6 つのオプションをサポートします。
Name | デフォルト | Java タイプ | 説明 |
---|---|---|---|
multipartSubType |
|
| MIME Multipart のサブタイプを指定します。デフォルトは混合です。 |
multipartWithoutAttachment |
|
| アタッチメントのないメッセージも MIME マルチパートにマーシャルされるかどうかを定義します(1 つのボディーの一部のみ)。デフォルトは false です。 |
headersInline |
|
| MIME-Multipart ヘッダーがメッセージボディー(true)の一部であるか、または Camel ヘッダー(false)として設定されるかどうかを定義します。デフォルトは false です。 |
includeHeaders |
| MIME ヘッダーとして MIME マルチパートにも含まれる Camel ヘッダーを定義する正規表現。これは、headerInline が true に設定されている場合にのみ機能します。デフォルトではヘッダーは含まれません。 | |
binaryContent |
|
| MIME マルチパートのバイナリー部分のコンテンツがバイナリー(true)または Base-64 でエンコードされた(false)のデフォルトであるかを定義します。 |
contentTypeHeader |
|
| データフォーマットがデータ形式を実行できる場合に、データ形式がデータ形式の型で Content-Type ヘッダーを設定するかどうか。たとえば、XML へのデータフォーマットの application/xml、または JSon へのデータフォーマットの application/json など。 |