public class SOAPConnect extends URLConnect
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 URLを指定します。GETの場合、パラメータは ?KEY=VALです。
args[B] : [user:passwd] BASIC認証のエリアへのアクセス時に指定します。
| コンストラクタと説明 |
|---|
SOAPConnect(java.lang.String url,
java.lang.String pass,
java.lang.String ns,
java.lang.String method,
java.lang.String xmlData)
コンストラクター
ここでは、送信するXMLデータを直接指定するためのコンストラクターを定義しています。
|
SOAPConnect(java.lang.String url,
java.lang.String pass,
java.lang.String ns,
java.lang.String method,
java.lang.String[] ks,
java.lang.String[] vs)
コンストラクター
ここでは、送信するXMLデータをキー及び値の一覧から生成するためのコンストラクターを定義しています。
|
| 修飾子とタイプ | メソッドと説明 |
|---|---|
protected java.net.URLConnection |
getConnection()
URL と ユーザー:パスワードを与えて、URLConnectionを返します。
|
static void |
main(java.lang.String[] args)
サンプル実行用のメインメソッド
Usage: java org.opengion.fukurou.util.SOAPConnect [-info/-data] … url [user:passwd]
args[*] : [-info/-data] 情報の取得か、データの取得かを指定します(初期値:-data)。
|
code2Message, connect, disconnect, getCharset, getCode, getDate, getInputStream, getLength, getMessage, getMethod, getModified, getReader, getType, getUrl, openHttpsConnection, readData, setCharset, setConentType, setMethodOverride, setPostData, setProxy, setRequestProperty, setTimeoutpublic SOAPConnect(java.lang.String url, java.lang.String pass, java.lang.String ns, java.lang.String method, java.lang.String[] ks, java.lang.String[] vs)
url - 接続するアドレスを指定します。(http://server:port/dir/file.html)pass - ユーザー:パスワード(認証接続が必要な場合)ns - 名前空間を指定します。method - メソッド名を指定します。ks - 送信するメソッドパラメーターのキー一覧を指定します。vs - 送信するパラメーターの値一覧を指定します。public SOAPConnect(java.lang.String url, java.lang.String pass, java.lang.String ns, java.lang.String method, java.lang.String xmlData)
url - 接続するアドレスを指定します。(http://server:port/dir/file.html)pass - ユーザー:パスワード(認証接続が必要な場合)ns - 名前空間を指定します。method - メソッド名を指定します。xmlData - パラメーターのXMLデータprotected java.net.URLConnection getConnection() throws java.io.IOException
getConnection クラス内 URLConnectjava.io.IOException - 入出力エラーが発生したときURLConnect.getConnection()public static void main(java.lang.String[] args) throws java.io.IOException
args - コマンド引数配列java.io.IOException - 入出力エラーが発生した場合Webアプリケーションフレームワーク openGionCopyright (c) 2009 The openGion Project.