![]() ![]() ![]() ![]() ![]() |
チュートリアル : WEBサービスの操作 05/19/03 09:50:45 |
このレッスンでは、Webサービスのテスト用ツールの使用方法について説明します。 学習内容は次のとおりです。
レッスン 2, Webサービスの作成で開発したCalculator Webサービスのプロジェクトを使用します。
注記: J2EEアプリケーションサーバを実行して、 レッスン 2, Webサービスの作成で配備したCalculator Webサービスを照会する必要があります。
ご存知のように、Web Serviceウィザードは、複数のJavaクラスをプロジェクトに追加します。 さらに、ウィザードの[Generate WSDL file]オプションでは、WSDLファイルをプロジェクトに追加します。 WSDLファイルは、実際のWebサービスコードへのアクセス権を持たないクライアントに対してWebサービスを記述します。 これは、ソースレイアウトではsrcディレクトリ下、アーカイブレイアウトではWEB-INF/classesディレクトリ下にあります。
ブラウザでWebサービスのURLを入力すると、サーバのjBroker Webコードは、SOAPメッセージではなく、GETリクエストを取得します。 そのため、Webサービスメソッドを実行してSOAPメッセージを返す代わりに、WebサービスのWSDLを表示します。 この機能により、Webを使用して他の開発者に、Webサービスを呼び出すクライアントアプリケーションを開発する上で必要な情報を提供することができます。
注記: 配備したWebサービス情報を共有する別の方法には、レジストリがあります( レッスン 1, WebサービスのレジストリおよびWSDLを参照)。
この手順では、XMLを認識して表示するブラウザが必要です(Internet Explorer 5以降など)。
レッスン 2, Webサービスの作成では、http://localhost/ProverbsCloud/Calculator/CalculatorImplなどのように、WebサービスバインドのURLを指定しました。 ブラウザでそのURLに移動します。
ブラウザでWebサービスのWSDLが表示されます。
jBroker Webのツールの1つには、クライアントとWebサービス間で送信されたSOAPリクエスト/応答メッセージ、およびHTTPヘッダを表示するコンソールであるTcpTunnelがあります。 TcpTunnelを使用するための基本的な手順は、次のとおりです。
次のエクササイズでは、TcpTunnelを使用してCalculatorクライアントを実行するための詳細な手順について説明します。 手順では、変更したバインドURLをテストクライアントのコードに含める方法について示します。また、クライアントコードを変更して、コマンドライン引数としてURLが受け入れられるようにすることもできます。
このエクササイズでは、クライアントでバインドURLを変更し、TcpTunnelによってメッセージトラフィックをリダイレクトします。
Workbenchを起動し、CalculatorWSディレクトリでCalculatorプロジェクトを開きます。
ヒント: 最近このプロジェクトを開いたことがある場合は、[File]>[Recent Files]の メニュー項目を使用できます。
エディタでCalculatorImplWS_Stub.javaを開きます。 バインドURLを検索して選択し、クリップボードにコピーします。 URLは、行の2番目の文字列で、次のようになります。
new com.sssw.jbroker.web.Binding("soap",
"http://localhost/ProverbsCloud/Calculator/CalculatorImpl"),
getRemote()メソッドを編集し、バインドを設定するコードを含めた後、スタブからURLに貼り付けます。
public CalculatorImplWS getRemote(String[] args) throws Exception { InitialContext ctx = new InitialContext(); String lookup = "xmlrpc:soap:calc.CalculatorImplWSService"; CalculatorImplWSService service = (CalculatorImplWSService)ctx.lookup(lookup); CalculatorImplWS remote = (CalculatorImplWS)service.getCalculatorImplWSPort(); ((javax.xml.rpc.Stub)remote)._setProperty("javax.xml.rpc.service.endpoint.address", "http://localhost/ProverbsCloud/Calculator/CalculatorImpl"); return remote; }
貼り付けたURLで、サーバおよびポートをlocalhost:9090に変更します。ただし、Webサービスの実際のURLで、残りの部分はそのままにします。 ポート9090は、任意の未使用ポート番号です。
この結果、コードの行は、次のようになります。
((javax.xml.rpc.Stub)remote)._setProperty("javax.xml.rpc.service.endpoint.address",
"http://localhost:9090/ProverbsCloud/Calculator/CalculatorImpl");
このエクササイズでは、[Client Runner]ウィンドウを使用して、TcpTunnelを開始し、テストクライアントを実行します。
Workbench-install-directory\bin\win32ディレクトリでDOSウィンドウ開き、次の形式でコマンドを入力して、TcpTunnelを開始します。
tcptunnel 9090 server-with-deployed-web-service port
たとえば、Webサービスをlocalhost:80に配備した場合は、次のように入力します。
tcptunnel 9090 localhost 80
サービスをwww.myweb.comに配備した場合は、次のように入力します。
tcptunnel 9090 www.myweb.com 80
Workbenchで、 レッスン 2, Webサービスの作成で実行した方法と同じ方法で、テストクライアントを実行します。つまり、メニューから[Project]>[Run Web Service Client Class]の順に選択してCalculatorImplWSClientクラスを選択し、2つの数値を引数として入力してから[Run]をクリックします。
TcpTunnelコンソールウィンドウで、交換されているHTTPヘッダおよびSOAPメッセージを確認します。
左側のペインには、クライアントからのSOAPリクエストが含まれ、右側のペインには、Webサービスからの応答が表示されます。
アプリケーションの開発 このレッスンでは、jBroker Webを介して実装されたWebサービスのWSDLを表示する方法について確認し、TcpTunnelを使用してSOAPメッセージトラフィックを検査する方法について学習しました。
Workbenchツールの使用 Workbenchで、次のツールを使用しました。
次の学習内容 以上で作業は完了です。 Calculator Webサービス、およびそれに対するクライアントWebアプリケーションの作成が完了しました。
J2EEおよびWorkbenchについてさらに学習するには、WARチュートリアルを参照してください。
![]() ![]() ![]() ![]() ![]() |
チュートリアル : WEBサービスの操作 05/19/03 09:50:45 |
Copyright © 1997, 1998, 1999, 2000, 2001, 2002, 2003 SilverStream Software, LLC, a wholly owned subsidiary of Novell, Inc. All rights reserved.