org.opengion.fukurou.util

## クラス SOAPConnect

- java.lang.Object
- - org.opengion.fukurou.util.URLConnect
  - - org.opengion.fukurou.util.SOAPConnect

-     public class SOAPConnect
      extends URLConnect

  SOAPConnect は、URLConnectクラスの拡張版で、SOAP接続を行うための機能を追加しています。 基本的な機能は、`URLConnect`を参照して下さい。 SOAP対応の追加機能としては、以下の2点があります。

       ①ヘッダー情報の変更
        SOAP接続では、通常のURLConnectに加えて、以下のヘッダー情報を付加しています。

        1.Content    = text/xml;charset=UTF-8"
        2.Accept     = text/xml, multipart/related, text/html, image/gif, image/jpeg,
        3.Soapaction = "[NameSpace][SOAPMethodName]"

       ②SOAPメッセージの生成機能
        SOAPメッセージは、以下のようなXML構造で定義されます。

        <env:Envelope env:xmlns="..." xsi:xmlns="...">
          <env:Body>
             <tns:[methodName] xmlns:tns="[nameSpace]">
                [methodParameter(XML)]
              </tns:[methodName]>
          </env:Body>
        </env:Envelope>

        SOAPConnectクラスでは、[methodParameter(メソッドパラメーター)]の定義方法に2種類の方法があります。

        (a)keys,valsによる指定
         keys,valsを指定することで、これらを内部的にXMLデータに変換し、パラメーター部分のXML
         情報を生成します。

         例)
           keys="param0>AAA,param0>BBB,param1>CCC,DDD"
           vals="v1,v2,v3,v4"
          [変換結果]
             <param0>
               <AAA>v1</AAA>
               <BBB>v2</BBB>
             </param0>
             <param1>
               <CCC>v3</CCC>
             </param1>
             <DDD>v4</DDD>

          この定義方法では、項目の値を"null"とすることで、XMLで言うところの
          「xsi:nil="true"」のデータを表現することもできます。

          また、キー名の先頭を'@'にすることで、項目名に名前空間のPREFIXを付加することができます。
          一般的には、JavaやRubyで実装されたWebサービスを呼び出しする場合は、必要ありませんが、
          .NETで実装されたWebサービスを呼び出しする場合は、各項目にPREFIXを付与しないと、正しく
          パラメーターを渡すことができません。

          ※現時点では、keysの階層定義は、2階層まで対応しています。
            3階層以上のXML構造を定義する場合は、postFile属性によるファイル指定又は、Body部分で直接
            XMLデータを記述して下さい。

        (b)XMLデータを直接指定
          メソッドパラメーターの部分のXMLデータを直接指定します。
          この場合、(a)のように、xsi:nil="true"や、パラメーターキーへのPREFIXの付加は、予め行って
          おく必要があります。
          なお、パラメーターキーのPREFIXは、"tns:"です。

       Usage: java org.opengion.fukurou.util.SOAPConnect [-info/-data] … url [user:passwd]

         args[*] : [-info/-data]      情報の取得か、データの取得かを指定します(初期値:-data)。
         args[*] : [-data=ファイル名] メソッドのパラメーターが記述されたXMLファイルを指定します。
         args[*] : [-out=ファイル名]  結果をファイルに出力します。ファイルエンコードも指定します。
         args[*] : [-nameSpace=名前空間]    メソッド名及びパラメータ
         args[*] : [-keys=キー一覧]   メソッドのパラメーターのキー一覧を指定します。(dataを指定した場合は無視されます)
         args[*] : [-vals=値一覧]     メソッドのパラメーターの値一覧を指定します。  (dataを指定した場合は無視されます)
         args[A] : url                ＵＲＬを指定します。GETの場合、パラメータは ?KEY=VALです。
         args[B] : [user:passwd]      BASIC認証のエリアへのアクセス時に指定します。

  バージョン
    4.0
  作成者
    Hiroki Nakamura
  導入されたバージョン:
    JDK5.0,

- - ### コンストラクタの概要

    コンストラクタ
    コンストラクタと説明
    `SOAPConnect(String url, String pass, String ns, String method, String xmlData)` コンストラクター ここでは、送信するXMLデータを直接指定するためのコンストラクターを定義しています。
    `SOAPConnect(String url, String pass, String ns, String method, String[] ks, String[] vs)` コンストラクター ここでは、送信するXMLデータをキー及び値の一覧から生成するためのコンストラクターを定義しています。

  - ### メソッドの概要

    メソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `protected URLConnection` | `getConnection()` URL と ユーザー：パスワードを与えて、URLConnectionを返します。
    `static void` | `main(String[] args)` サンプル実行用のメインメソッド Usage: java org.opengion.fukurou.util.SOAPConnect [-info/-data] … url [user:passwd] args[*] : [-info/-data] 情報の取得か、データの取得かを指定します(初期値:-data)。

    - ### クラスから継承されたメソッド org.opengion.fukurou.util.URLConnect

      `code2Message, connect, disconnect, getCharset, getCode, getDate, getInputStream, getLength, getMessage, getMethod, getModified, getReader, getType, getUrl, readData, setCharset, setPostData, setProxy, setRequestProperty, setTimeout`

    - ### クラスから継承されたメソッド java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### コンストラクタの詳細

    - #### SOAPConnect

          public SOAPConnect(String url,
                     String pass,
                     String ns,
                     String method,
                     String[] ks,
                     String[] vs)

      コンストラクター ここでは、送信するXMLデータをキー及び値の一覧から生成するためのコンストラクターを定義しています。
      パラメータ:
        `url` - 接続するアドレスを指定します。(http://server:port/dir/file.html)
        `pass` - ユーザー：パスワード(認証接続が必要な場合)
        `ns` - 名前空間を指定します。
        `method` - メソッド名を指定します。
        `ks` - 送信するメソッドパラメーターのキー一覧を指定します。
        `vs` - 送信するパラメーターの値一覧を指定します。

    - #### SOAPConnect

          public SOAPConnect(String url,
                     String pass,
                     String ns,
                     String method,
                     String xmlData)

      コンストラクター ここでは、送信するXMLデータを直接指定するためのコンストラクターを定義しています。
      パラメータ:
        `url` - 接続するアドレスを指定します。(http://server:port/dir/file.html)
        `pass` - ユーザー：パスワード(認証接続が必要な場合)
        `ns` - 名前空間を指定します。
        `method` - メソッド名を指定します。
        `xmlData` - パラメーターのXMLデータ

  - ### メソッドの詳細

    - #### getConnection

          protected URLConnection getConnection()
                                         throws IOException

      URL と ユーザー：パスワードを与えて、URLConnectionを返します。 SOAP接続では、通常のURLConnectに加えて、以下のヘッダー情報を付加しています。 1.Content = text/xml;charset=UTF-8" 2.Accept = text/xml, multipart/related, text/html, image/gif, image/jpeg, 3.Soapaction = "[NameSpace][SOAPMethodName]"
      オーバーライド:
        `getConnection` クラス内 `URLConnect`
      戻り値:
        URLConnectionオブジェクト
      例外:
        `IOException` - 入出力エラーが発生したとき
      関連項目:
        `URLConnect.getConnection()`

    - #### main

          public static void main(String[] args)
                           throws IOException

      サンプル実行用のメインメソッド Usage: java org.opengion.fukurou.util.SOAPConnect [-info/-data] … url [user:passwd] args[*] : [-info/-data] 情報の取得か、データの取得かを指定します(初期値:-data)。 args[*] : [-data=ファイル名] 送信するデータが記述されたXMLファイルを指定します。 args[*] : [-out=ファイル名] 結果をファイルに出力します。ファイルエンコードも指定します。 args[*] : [-nameSpace=名前空間] メソッド名及びパラメーターの名前空間を指定します。 args[*] : [-methodName=メソッド名] メソッド名を指定します。 args[*] : [-keys=キー一覧] メソッドのパラメーターのキー一覧を指定します。(dataを指定した場合は無視されます) args[*] : [-vals=値一覧] メソッドのパラメーターの値一覧を指定します。 (dataを指定した場合は無視されます) args[A] : url ＵＲＬを指定します。GETの場合、パラメータは ?KEY=VALです。 args[B] : [user:passwd] BASIC認証のエリアへのアクセス時に指定します。
      パラメータ:
        `args` - コマンド引数配列
      例外:
        `IOException` - 入出力エラーが発生した場合

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.