いよいよサンプルプログラムを実行してみましょう。これまで設定した内容を再度確認しておきます。
これらの確認ができたら<AXIS_HOME>ディレクトリに移動し、クライアントを実行します。次のコマンドを実行してください。Axisを導入して初めて動かす場合は、下記のようになるはずです。
●コマンド(1)-1 >java samples.userguide.example3.Client
こんにちは
|
もし、一度でもAxisで何かを動かしている場合は、次のようになるでしょう。
●コマンド(1)-3 >java samples.userguide.example3.Client
こんにちは
|
いずれにしても、クライアント(Client)がWebサービスを呼び出したのですが、どうもうまく動いていないようです。Axisエンジンが「実行するサービスを見つけることができない」(targetService is null)といっています。
では、サービスを見つけられるようにしましょう。次のコマンドを実行します。
●コマンド(2)-1>java org.apache.axis.client.AdminClient
samples\userguide\example3\deploy.wsdd
|
「Done processiong」が返ってきたら、もう一度クライアントを実行してみましょう。
●コマンド(1)-2>java samples.userguide.example3.Client
こんにちは
|
このように表示されましたか? これで、Webサービスを利用したクライアント/サーバ型アプリケーションが正常に稼働したことになります。このクライアントが呼び出しているWebサービスは、クライアントから受け取った文字列をそのまま戻すサービスです。そのため、引数に入力した文字列がそのまま表示されれば稼働したことになります。
次に、以下のコマンドを実行します。
●コマンド(3)>java org.apache.axis.client.AdminClient
samples\userguide\example3\undeploy.wsdd
|
そして、クライアントをもう一度実行してみましょう(コマンド(1))。
●コマンド(1)-3>java samples.userguide.example3.Client
こんにちは
|
今度は異なる結果になりました。また最初のときのようにサービスが使えない状態になっています。
最初うまく動かなかったプログラムが「コマンド(2)」を実行することで動くようになり、「コマンド(3)」を実行するとまた動かなくなりました。どうも「コマンド(2)」や「コマンド(3)」に何か秘密が隠されているようです。そして、クライアント/サーバ型プログラムはどのような手順で通信しているのでしょうか?
と、先に進みたいのはやまやまですが、今回はここまでにしましょう。
ここまで何気なく「Webサービス」という言葉を使ってきましたが、少し言葉の定義をしておきましょう。広い意味での「Webサービス」は、Webサービス関連技術を使ったWebサービスシステム全体を指す言葉として定義されることが多いようです。この中には「UDDI」や「WSFL」や「WS-Security」などの技術も含まれるでしょうし、その範囲はあいまいです。
この連載での「Webサービス」という言葉は、「サービス提供者(プロバイダ)が提供するSOAPベースのサービス」という意味で利用していきます。今回の場合、クライアントプログラム(コマンド(1))が呼び出しているAxisエンジン上の「サーバプログラム」を「Webサービス」と呼んでいます。そして、このWebサービスを呼び出しているクライアントプログラムを「Webサービス・クライアント」(または、単に「クライアント」)とします。ほかにも「リクエスター/プロバイダ」などの呼び方がありますが、この連載では、「Webサービス」「Webサービス・クライアント」(または単に「クライアント」)とします。
今回は、Webサービス実行環境の準備をし、サンプルプログラムを動かしてみました。サンプルプログラムが単に動いただけではSOAPやWSDLがどういうものだか分かりませんね。今後、この環境を用いてさまざまな実験を行いながらSOAPやWSDLを裸にしていきます。このように、この連載では実際にプログラムを動かすことで出てくる「?」を順を追って解析していきます。この解析作業はWebサービス技術を身に付ける「ステップ」です。進み方はゆっくりですが、「?」を「!」に変えるのを楽しみましょう。
次回はWebサービスがどのように動いているかを調べてみます。それでは、またお会いしましょう!
Copyright © ITmedia, Inc. All Rights Reserved.