ウィザードを使用してWSDLからWebサービスクライアントの自動作成
Cincom VisualWorks Web Service
Web Service ウィザード
VisualWorks の Web サービスフレームワークには、アプリケーションで使用できる Smalltalk のクラスを自動的に生成するウィザードとビルダが用意されています。WSDL ウィザードは、与えられた WSDL スキーマを使用して、そのスキーマに記述されたサービスにアクセスするためのカスタムのクライアントクラスを生成します。
Web サービスウィザードは、VisualWorks 内から Web サービスにアクセスするために必要な Smalltalk コードを作成するための最も簡単な方法です。
WSDL スキーマからのクラスの作成
Web サービスウィザードは、与えられた WSDL スキーマを使用して、VisualWorks 内から Web サービスにアクセスするために必要な Smalltalkのコードとクライアントクラスを作成します。
VisualWorks を起動します。システム→指定パーセルのロードを選択します。
表示されたダイアログにWSDLと入力し、リストからWSDLWizardを選択します。そして、OKボタンをクリックします。
これにより、WSDLウィザードが使用できるようになります。また、ビジュアルランチャーのツールメニューにいくつかのメニューオプションが追加されます。
ツール→Webサービスウィザードを選択します。
Webサービスウィザードが表示されます。
このツールでは、既存のSmalltalkアプリケーションをWebサービスとして公開するための機能もあります。ここでは、既存のWSDLスキーマを使用して、Webサービスにアクセスするためのクラスを生成する方法を学習します。
WSDL スキーマからアプリケーションの作成を選択し、次をクリックします。
WsdlスキーマURLに、既存のWSDLを指定します。ここでは、無償で公開しているWSDLのサンプルを使用します(http://www.webservicex.net/ws/default.aspx)。次のURLを入力します。
- http://www.webservicex.net/CurrencyConvertor.asmx?WSDL
このサービスは、通貨を例えば、ドルから円のように変換します。次に、作成するクライアントとして、Wsdlクライアントを選びます。下記のようになります。
このURLをWebブラウザのURLフィールドに指定して表示させるとWSDLの内容を確認できます。
作成するクラスのパッケージやネームスペースを指定します。設定ボタンをクリックします。ここでのパッケージ名は、
Currency-Convertorにします。入力後、アクセプトボタンをクリックします。
ウィザードに戻り、次ボタンをクリックします。WSDLを解析して、Smalltalk サポートコードを生成します。生成されるサービスに応答するサポートクラスの一覧が表示されます。生成されるクラス名を変更することもできますが、ここでは、変更しません。OKボタンをクリックします。
クラスやサポートメソッドなどが自動生成され、作成されたコードをテストするためのワークスペースが開き、サンプルコードが表示されます。
生成されたクラス
- CurrencyConvertorSoapWsdlClient : WSDLクライアントクラス
- ConversionRate : WSDLのリクエストに対応したクラス
- ConversionRateResponse :WSDLのレスポンスに対応したクラス
1行ずつ、簡単に見ていきます。
client := CurrencyConvertorSoapWsdlClient new.
Webサービスクライアントとしての基幹となるCurrencyConvertorSoapWsdlClient クラスのインスタンスを生成して、client 変数に代入します。ワークスペースなので、変数を宣言しなくても、動作します。
arg1 := ConversionRate new
fromCurrency: (‘USD’);
toCurrency: (‘JPY’);
yourself.
- fromCurrency:の引数を‘USD’(U.S. Dollar)に。
- toCurrency:の引数を‘JPY’(Japanese Yen)に。
ここでは、Currency Convertor Webサービスに送信するためのオブジェクトを生成します。
value := client conversionRate: arg1.
最初に作成したWSDLクライアントに、リクエスト用のメッセージとその引数を送信します。これにより、Webサービスサーバに送信され、正しく動作すれば、レスポンス用のオブジェクトであるConversionRateResponseのインスタンスが返されます。
それでは、実際に動かします。すべてを反転させ、右クリックメニューからインスペクトを選択します。
ConversionRateResponseのインスタンスが戻され、現在の1ドルに対する円のレート80.53円を取得できました。
これで、完了です。終了ボタンをクリックして閉じます。このWSDLクライアントを編集したい場合には、システムブラウザから簡単に変更できます。
このように、既にWSDLが存在すれば、自動的にWSDLを解析して、必要なクラスやメソッドが自動生成されるので、簡単に、あなたのアプリケーションとWebサービスを結びつけることが可能です。