30.2 添付ファイルのJavaインタフェース(MTOM/XOP)

ここでは,Javaインタフェース内で添付ファイルを指定するJava型について説明します。

<この節の構成>
(1) MTOM/XOP仕様形式の添付ファイルの対象
(2) MTOM/XOP仕様形式の添付ファイルで使用するアノテーション
(3) MTOM/XOP仕様形式の添付ファイルの使用方法
(4) Document BareスタイルでのMTOM/XOP仕様形式の添付ファイル

(1) MTOM/XOP仕様形式の添付ファイルの対象

MTOM/XOP仕様形式の添付ファイルは,次に示す個所のBase64形式のデータにマッピングされるJava型がすべて対象です。

Base64形式のデータにマッピングされるJava型が複数ある場合,特定のJava型だけをMTOM/XOP仕様形式の添付ファイルの対象にすることはできません。

(2) MTOM/XOP仕様形式の添付ファイルで使用するアノテーション

MTOM/XOP仕様形式の添付ファイルで使用するアノテーションは次のとおりです。

(3) MTOM/XOP仕様形式の添付ファイルの使用方法

WebサービスでMTOM/XOP仕様形式の添付ファイルを使用するには,Webサービス実装クラスにjavax.xml.ws.soap.MTOMアノテーションをアノテートします。MTOM/XOP仕様形式の添付ファイルを使用したWebサービス実装クラスの例を次に示します。

package com.sample;

@MTOM
@BindingType(・・・)
public class UserInfoImpl implements UserInfo {

   public UserData setUserData(Image image)
       throws UserDefinedException {
       ・・・・・・
   }
}

また,javax.xml.ws.soap.MTOMアノテーションの代わりにjavax.xml.ws.soap.SOAPBindingインタフェースのフィールド値をjavax.xml.ws.BindingTypeアノテーションに指定することで,MTOM/XOP仕様形式の添付ファイルを使用できます。javax.xml.ws.soap.MTOMアノテーションとjavax.xml.ws.BindingTypeアノテーションに指定するjavax.xml.ws.soap.SOAPBindingインタフェースのフィールド値の関係を次の表に示します。

表30-1 MTOMアノテーションとSOAPBindingインタフェースのフィールドの関係

項番MTOMアノテーションBindingTypeアノテーションMTOM/XOP仕様形式の添付ファイル
アノテーション有無enabled要素値SOAPBindingインタフェースのフィールド値フィールド値の記述可否
1ありtrueSOAP11HTTP_BINDING
2SOAP12HTTP_BINDING
3SOAP11HTTP_MTOM_BINDING
4SOAP12HTTP_MTOM_BINDING
5falseSOAP11HTTP_BINDING×
6SOAP12HTTP_BINDING×
7SOAP11HTTP_MTOM_BINDING
8SOAP12HTTP_MTOM_BINDING
9なしSOAP11HTTP_BINDING×
10SOAP12HTTP_BINDING×
11SOAP11HTTP_MTOM_BINDING
12SOAP12HTTP_MTOM_BINDING
(凡例)
○:有効です。
×:無効です。
-:該当しません。
注※
Webサービス開始時にjavax.xml.ws.WebServiceExceptionが発生します。

javax.xml.ws.soap.MTOMアノテーションの代わりにjavax.xml.ws.soap.SOAPBindingインタフェースのフィールドを使用したWebサービス実装クラスの例を次に示します。

package com.sample;

@BindingType(SOAPBinding.SOAP11HTTP_MTOM_BINDING)
public class UserInfoImpl implements UserInfo {

   public UserData setUserData(Image image)
       throws UserDefinedException {
       ・・・・・・
   }
}

(4) Document BareスタイルでのMTOM/XOP仕様形式の添付ファイル

Document BareスタイルのJavaクラスで,MTOM/XOP仕様形式の添付ファイルを使用し,Java型とMIMEタイプを関連づける場合,Java型をサービスメソッドの戻り値やパラメタに使用しないでください。Java型とMIMEタイプを関連づける場合は,ユーザ定義型のフィールドにJava型を使用し,そのフィールドのgetterメソッドにjavax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートします。