biz-Streamマニュアル Webサービスサーバ ガイド 第11章 サンプルプログラム(Java) 11.11 リポジトリにディレクトリを作成しファイルを格納するサンプル(JAX-WS)

11.11 リポジトリにディレクトリを作成しファイルを格納するサンプル(JAX-WS)

概要

バッチ印刷モジュールを利用するサンプルプログラムです。


スタブクラスの準備

事前に『10.2.5 Java で開発するための環境構築』の手順を実行します。


サンプル構成

項目 ファイルパス
ソースサンプル <bswss-client_home>/sample/java/jax-ws/WSS_JAXWS_Sample11.java サンプル1

ソースサンプル


    import java.io.BufferedInputStream;
    import java.io.DataInputStream;
    import java.io.File;
    import java.io.FileInputStream;
    import java.net.Authenticator;
    import java.net.PasswordAuthentication;
    import java.net.URL;
    import java.util.Map;

    import javax.xml.ws.BindingProvider;
    import javax.xml.ws.WebServiceFeature;
    import javax.xml.ws.soap.MTOMFeature;

    import org.apache.ws.axis2.Cms;
    import org.apache.ws.axis2.CmsPortType;
    import org.w3._2005._05.xmlmime.Base64Binary;

    import com.brainsellers.schemas.webservices.cms._2006_10.MkdirRequest;
    import com.brainsellers.schemas.webservices.common._2006_10.FileData;
    import com.brainsellers.schemas.webservices.common._2006_10.Success;



    public class WSS_JAXWS_Sample11 {

       // Webサービスサーバのホスト名
       private static final String WSS_HOST_NAME = "wsssrv";

       // Webサービスのエンドポイントプリフィックス
       private static final String WSS_SERVICE_LOCATION = "http://" + WSS_HOST_NAME + ":8080/axis2/services";

       // BASIC認証のユーザ名
       private static final String USER_NAME = "bizuser1";

       // BASIC認証のパスワード
       private static final String PASSWORD = "bizuser1";

       // 監査ロギング用のユーザ定義
       private static final String USER_DEF = "AAA";

       // リポジトリ内に作成するディレクトリ名
       private static final String MKDIR_NAME = "/Sample11_JAXWS";

       // 入力PDFファイル
       private static final String INPUT_FILE_PATH = "C:/Temp/WSS_JAXWS_Sample7.csv";

       // リポジトリへの出力先
       private static final String TARGET_FILE_PATH = "/Sample11_JAXWS/WSS_JAXWS_Sample11.csv";


       /**
        *
        * @param args
        */
       public static void main(String[] args) {
           new WSS_JAXWS_Sample11();
       }

       /**
        * メイン
        */
       public WSS_JAXWS_Sample11() {
           try{
               // 認証の設定
               setAuth();

               // リポジトリにディレクトリを作成
               makeDir();

               // 作成したリポジトリにファイルを格納
               putData();
           } catch (Exception e) {
               e.printStackTrace();
           }
       }

       /**
        * 認証の設定
        */
       private void setAuth() {
           Authenticator.setDefault(new Authenticator() {
               protected PasswordAuthentication getPasswordAuthentication() {
                   return new PasswordAuthentication(USER_NAME, PASSWORD.toCharArray());
               }
           });
       }

       /**
        * リポジトリにディレクトリを作成
        *
        * @return Success
        */
       public Success makeDir() throws Exception {
           // クライアント生成
           Cms service = new Cms(new URL(WSS_SERVICE_LOCATION + "/cms?wsdl"));

           // MTOMを有効化
           WebServiceFeature feature = new MTOMFeature(true);
           CmsPortType type = service.getCmsSOAP11Port(feature);
           BindingProvider bp = (BindingProvider) type;
           Map<String, Object> reqContext = bp.getRequestContext();
           reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
                   WSS_SERVICE_LOCATION + "/cms?UserDef=" + USER_DEF);

           // リクエストメッセージの作成
           MkdirRequest request = new MkdirRequest();
           request.setValue(MKDIR_NAME);

           // リクエストを送信
           return type.mkdir(request);
       }

       /**
        * リポジトリにファイルを格納
        *
        * @return Success
        */
       public Success putData() throws Exception {
           // クライアント生成
           Cms service = new Cms(new URL(WSS_SERVICE_LOCATION + "/cms?wsdl"));

           // MTOMを有効化
           WebServiceFeature feature = new MTOMFeature(true);
           CmsPortType type = service.getCmsSOAP11Port(feature);
           BindingProvider bp = (BindingProvider) type;
           Map<String, Object> reqContext = bp.getRequestContext();
           reqContext.put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY,
                   WSS_SERVICE_LOCATION + "/cms?UserDef=" + USER_DEF);

           // リクエストメッセージの作成
           FileData request = new FileData();
           request.setName(TARGET_FILE_PATH);

           Base64Binary inputData = new Base64Binary();
           File file = new File(INPUT_FILE_PATH);
           byte[] data = new byte[(int)file.length()];

           DataInputStream dp = new DataInputStream(new BufferedInputStream(new FileInputStream(INPUT_FILE_PATH)));
           dp.read(data);
           dp.close();

           inputData.setValue(data);
           request.setContentData(inputData);

           // リクエストを送信
           return type.put(request);
       }

    }