Cosminexus V9 アプリケーションサーバ Webサービス開発ガイド
Webサービス側JAX-WSエンジンでMTOM/XOP仕様形式の添付ファイルを使用できるかどうかは,Webサービス実装クラスに指定されているjavax.xml.ws.soap.MTOMアノテーション,またはjavax.xml.ws.BindingTypeアノテーションに指定するSOAPBindingインタフェースのフィールド値に依存します。MTOM/XOP仕様形式の添付ファイルの使用可否とリクエストメッセージを受信したときの動作を次の表に示します。
表30-2 MTOM/XOP仕様形式の添付ファイルの使用可否とリクエストメッセージを受信したときの動作
| 項番 | MTOM/XOP仕様形式の添付ファイル | 受信したリクエストメッセージに含まれるデータ | 受信の成功/失敗 | しきい値と送信する添付ファイルサイズの関係※ | 送信するレスポンスメッセージに含まれるデータ |
|---|---|---|---|---|---|
| 1 | 使用する | バイナリデータ | 成功 | しきい値≦添付ファイルのサイズ | バイナリデータ |
| 2 | Base64形式のデータ | 成功 | しきい値>添付ファイルのサイズ | ||
| 3 | 使用しない | バイナリデータ | 成功 | なし | Base64形式のデータ |
| 4 | Base64形式のデータ | 成功 | なし |
Webサービス実装クラスにjavax.xml.ws.soap.MTOMアノテーションを指定しない場合やjavax.xml.ws.BindingTypeアノテーションに指定するSOAPBindingインタフェースのフィールド値にSOAPBinding.SOAP11HTTP_MTOM_BINDINGおよびSOAPBinding.SOAP12HTTP_MTOM_BINDINGを指定しない場合,MTOM/XOP仕様形式の添付ファイルを使用しません。バイナリデータを含んだメッセージかどうかに関係なく,すべてのリクエストメッセージを受信します。また,レスポンスメッセージはBase64形式のデータを含んだメッセージを送信します。
Java型とMIMEタイプを関連づけるjavax.xml.bind.annotation.XmlMimeTypeアノテーションをSEIなどにアノテートしている場合とアノテートしていない場合では,MTOM/XOP仕様形式の添付ファイルで送信されるメッセージの添付ファイルパートにあるContent-Typeフィールドの値が変化します。javax.xml.bind.annotation.XmlMimeTypeアノテーションの可否と添付ファイルパートにあるContent-Typeフィールドの値の変化を次に示します。
表30-3 Java型とContent-Typeの初期値
| 項番 | Java型 | Content-Typeの初期値 |
|---|---|---|
| 1 | java.awt.Image | "image/png" |
| 2 | javax.xml.transform.Source | "application/xml" |
| 3 | javax.activation.DataHandler | javax.activation.DataHandlerオブジェクトのMIMEタイプ※ |
| 4 | java.awt.Imageの配列型 | "image/png" |
| 5 | javax.activation.DataHandlerの配列型 | javax.activation.DataHandlerオブジェクトのMIMEタイプ※ |
| 6 | java.util.List<Image> | "image/png" |
| 7 | java.util.List<DataHandler> | javax.activation.DataHandlerオブジェクトのMIMEタイプ※ |
| 8 | javax.xml.ws.Holder<Image> | "image/png" |
| 9 | javax.xml.ws.Holder<Source> | "application/xml" |
| 10 | javax.xml.ws.Holder<DataHandler> | javax.activation.DataHandlerオブジェクトのMIMEタイプ※ |
| 11 | byte[] | "application/octet-stream" |
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.