かにかまたべたい

かにかまのメモ

はじめてのSOAP その3 -クライアントを作る-

とりあえずソースができたので、これを使ってSOAP通信をやってみよう。。

自動生成されたスタブのメソッドに引数としてBeanを渡してあげると、

スタブの中でSOAPメッセージを作って通信してくれるみたい・・・・。

い、、至れりつくせりっっ(*゚0゚)

 

WSDLから生成したソースをまるっとJavaプロジェクトにコピー。

恐らく、ライブラリが足りないよー!ってめっちゃ怒られると思うので、

axis2のインストール先からライブラリを追加してあげましょう。

ライブラリはなんかいっぱいあるけど、とりあえず以下のものを入れとけば大丈夫そう。

axis2 1.4.1の場合。

・ activation-1.1.jar
・ axiom-api-1.2.7.jar 
・ axiom-impl-1.2.7.jar
・ axis2-adb-1.4.1.jar
・ axis2-kernel-1.4.1.jar
・ backport-util-concurrent-3.1.jar
・ commons-codec-1.3.jar
・ commons-httpclient-3.1.jar
・ commons-logging-1.1.1.jar
・ httpcore-4.0-beta1.jar
・ log4j-1.2.15.jar
・ mail-1.4.jar
・ neethi-2.0.4.jar
・ wsdl4j-1.6.2.jar
・ XmlSchema-1.4.2.jar


そして、mainメソッドとして、スタブを呼び出すクラスを作ります。


スタブのクラス名が「HogeHogeStub」、
「HogeRequest」Beanを引数に持つ「requestHogeFuga」メソッドを呼び出し
「HogeResponse」を取得する場合、↓のような感じかな。

 

public class hoge{
    public static void main(String[] args) {
        try {
            // SOAP通信用パラメータセット
            HogeHogeStub = new HogeHogeStub();
            HogeRequest request = new HogeRequest();
            request.setHoge("ほげほげ");
            request.setFugaFuga("ふがふが");
            
            // SOAP通信実施
            HogeResponse response = stub.requestHogeFuga(request);
        
        } catch (Exception e) {
            System.out.println("■エラーです....");
            e.printStackTrace();
        }
    }
}

 


WSDLから生成したスケルトン(サーバ側)コードにも

「requestHogeFuga」メソッドが定義されているはずです。

スタブのメソッドを呼び出すことでサーバ側の同名メソッドが呼び出されるぽいです。

axis2を使うとSOAPメッセージの作り方~とか、通信はどうやって~なんてことは

考えなくていいんですね。便利☆



サーバ側の本処理は別のチームが作ってくれるので私のお仕事はここまで。

・・・といいたいとこですが、サーバ側の擬似PGがないとテストができないと言われ。。。。

えー(;・∀・) って思いつつ、WSDLから生成したスケルトンを使って

サーバ側の処理も作ることになってしまいました・・・・。


つづ・・・かない。