Hitachi

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


32.2.2 Webサービスクライアント側

Webサービスクライアントでストリーミングを使用するには,SEIを取得する際にcom.sun.xml.ws.developer.StreamingAttachmentFeatureクラスを設定します。

com.sun.xml.ws.developer.StreamingAttachmentFeatureクラスについては,「19.2.4(1) com.sun.xml.ws.developer.StreamingAttachmentFeatureクラス」を参照してください。

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

package com.sample;
 
・・・・・・
 
public class TestClient {
 
    public static void main(String[] args) {
        try {
            File portrait = new File("portrait.png");
            FileDataSource fileDataSource = new FileDataSource(portrait);
            DataHandler dataHandler = new DataHandler(fileDataSource);
 
            MTOMFeature mtomFeature = new MTOMFeature();
            StreamingAttachmentFeature streamingAttachmentFeature = new StreamingAttachmentFeature("C:/TMP", true, 50000L);
 
            UserInfoService service = new UserInfoService();
            UserInfoImpl port = service.getUserInfoImplPort(mtomFeature, streamingAttachmentFeature);
            DataHandler userData = port.getUserInfo(dataHandler);
            if (userData instanceof StreamingDataHandler) {
                StreamingDataHandler sdh = null;
                try {
                    sdh = (StreamingDataHandler)userData;
                    sdh.moveTo(file);
                    ・・・・・・
                } finally {
                    try {
                        if (sdh != null) {
                            sdh.close();
                        }
                    } catch(Exception ex) {
                        ・・・・・・
                    }
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}