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" |