32.2.1 Webサービス側

Webサービスでストリーミングを使用するには,Webサービス実装クラスにcom.sun.xml.ws.developer.StreamingAttachmentアノテーションをアノテートします。com.sun.xml.ws.developer.StreamingAttachmentアノテーションについては,「16.2.2 com.sun.xml.ws.developer.StreamingAttachmentアノテーション」を参照してください。

ストリーミングを使用したWebサービス実装クラスの例を次に示します。この例では,"C:/TMP"ディレクトリをストリーミングによる一時ファイルの出力先に指定し,添付ファイルを含むSOAPメッセージの詳細な解析をして,50,000バイト以上のMIMEボディを一時ファイルとして出力します。

package com.sample;

・・・・・・

@MTOM
@StreamingAttachment(dir="C:/TMP", parseEagerly=true, memoryThreshold=50000L)
@BindingType(・・・)
public class UserInfoImpl implements UserInfo {

   public DataHandler getUserInfo(DataHandler dataHandler)
       throws UserDefinedException {
       if (dataHandler instanceof StreamingDataHandler) {
           StreamingDataHandler sdh = null;
           try {
               sdh = (StreamingDataHandler)dataHandler;
               ・・・・・・
           } finally {
               try {
                   if (sdh != null) {
                       sdh.close();
                   }
               } catch(Exception ex) {
                   ・・・・・・
               }
           }
       }
       ・・・・・・
   }
}

Webサービス側でストリーミングを使用し,次の条件をすべて満たすリクエストメッセージを受信した場合,レスポンスメッセージに含まれるデータがBase64形式のデータになります。