はじめての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(); } } }
「requestHogeFuga」メソッドが定義されているはずです。
スタブのメソッドを呼び出すことでサーバ側の同名メソッドが呼び出されるぽいです。
axis2を使うとSOAPメッセージの作り方~とか、通信はどうやって~なんてことは
考えなくていいんですね。便利☆
サーバ側の本処理は別のチームが作ってくれるので私のお仕事はここまで。
・・・といいたいとこですが、サーバ側の擬似PGがないとテストができないと言われ。。。。
えー(;・∀・) って思いつつ、WSDLから生成したスケルトンを使って
サーバ側の処理も作ることになってしまいました・・・・。
つづ・・・かない。