Hitachi

Cosminexus V11 アプリケーションサーバ Webサービス開発ガイド


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形式のデータになります。