Cosminexus V9 アプリケーションサーバ Webサービス開発ガイド
ここでは,Javaインタフェース内で添付ファイルを指定するJava型について説明します。
MTOM/XOP仕様形式の添付ファイルは,次に示す個所のBase64形式のデータにマッピングされるJava型がすべて対象です。
Base64形式のデータにマッピングされるJava型が複数ある場合,特定のJava型だけをMTOM/XOP仕様形式の添付ファイルの対象にすることはできません。
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 | あり | true | SOAP11HTTP_BINDING | 可 | ○ |
| 2 | SOAP12HTTP_BINDING | 可 | ○ | ||
| 3 | SOAP11HTTP_MTOM_BINDING | 可 | ○ | ||
| 4 | SOAP12HTTP_MTOM_BINDING | 可 | ○ | ||
| 5 | false | SOAP11HTTP_BINDING | 可 | × | |
| 6 | SOAP12HTTP_BINDING | 可 | × | ||
| 7 | SOAP11HTTP_MTOM_BINDING | 否※ | − | ||
| 8 | SOAP12HTTP_MTOM_BINDING | 否※ | − | ||
| 9 | なし | − | SOAP11HTTP_BINDING | 可 | × |
| 10 | SOAP12HTTP_BINDING | 可 | × | ||
| 11 | SOAP11HTTP_MTOM_BINDING | 可 | ○ | ||
| 12 | SOAP12HTTP_MTOM_BINDING | 可 | ○ | ||
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 {
・・・・・・
}
}
|
Document BareスタイルのJavaクラスで,MTOM/XOP仕様形式の添付ファイルを使用し,Java型とMIMEタイプを関連づける場合,Java型をサービスメソッドの戻り値やパラメタに使用しないでください。Java型とMIMEタイプを関連づける場合は,ユーザ定義型のフィールドにJava型を使用し,そのフィールドのgetterメソッドにjavax.xml.bind.annotation.XmlMimeTypeアノテーションをアノテートします。
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.