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