Web サービスをサポートするサーバーの記述
Web サービスの利用:インデックス への移動
起動可能インターフェース,およびこのインターフェースを実装するクラスのほかにも,サーバーはディスパッチャとインボーカの 2 つのコンポーネントを必要とします。ディスパッチャ(WebbrokerSOAP.THTTPSoapDispatcher)は,受信した SOAP メッセージを受け取り,インボーカに渡します。インボーカ(SOAPHTTPPasInv.THTTPSOAPPascalInvoker)は,この SOAP メッセージを解釈し,このメッセージが呼び出す起動可能インターフェースを識別し,その呼び出しを実行し,レスポンスメッセージを組み立てます。
メモ: THTTPSoapDispatcher と THTTPSoapPascalInvoker は,SOAP リクエストを含む HTTP メッセージに応答するように設計されています。ただし,基底のアーキテクチャが十分な一般性を備えているので,異なるディスパッチャおよびインボーカコンポーネントと置換することによってほかのプロトコルをサポートできます。
起動可能インターフェースとその実装クラスを登録すると,ディスパッチャとインボーカが HTTP リクエストメッセージの SOAP Action ヘッダーの中でこのインターフェースを識別するメッセージを自動的に処理します。
Web サービスにはパブリッシャ(Soap.WSDLPub.TWSDLHTMLPublish)も含まれます。パブリッシャは,アプリケーション内で Web サービスを呼び出す方法を記述した WSDL ドキュメントを作成することで,受信したクライアントリクエストに応答します。
Web サービスサーバーの構築
RAD Studio には,Web サービスサーバーアプリケーションをすばやく開発できるウィザードが用意されています。
Web サービスを実装するサーバーアプリケーションを構築する手順は次のとおりです。
- [ファイル > 新規作成 > その他]を選択し,[WebServices]タブで[SOAP サーバーアプリケーション]アイコンをダブルクリックして SOAP サーバーアプリケーションウィザードを起動します。SOAP リクエストに応答するために必要なコンポーネントが含まれる新しい Web サーバーアプリケーションが作成されます。
- SOAP サーバーアプリケーションウィザードを終了すると,Web サービスのインターフェースを定義するかどうかが確認されます。まったく最初から Web サービスを作成する場合は[はい]をクリックします。[Web サービスの新規作成]ウィザードが表示されます。このウィザードは,Web サービスの新しい起動可能インターフェースを宣言および登録するコードを追加します。生成されたコードを編集して Web サービスを定義および実装します。追加のインターフェースを追加したい場合(または後でインターフェースを定義したい場合)は,[ファイル > 新規作成 > その他]を選択し,[WebServices]ページで[SOAP Web サービスインターフェース]アイコンをダブルクリックします。[Web サービスの新規作成]ウィザードの使い方,およびこのウィザードが生成するコードの完成方法の詳細は,「新しい Web サービスの追加」を参照してください。
- すでに WSDL ドキュメントで定義された Web サービスを実装する場合は,WSDL インポータを使用して,アプリケーションに必要なインターフェース,実装クラス,および登録コードを生成します。インポータが実装クラス用に生成するメソッドの本体を埋めるだけで完成できます。WSDL インポータの使い方については,「WSDL インポータの使い方」を参照してください。
- アプリケーションとクライアントの間でメッセージをコード化する SOAP エンベロープのヘッダーを使用するには,これらのヘッダーを表すクラスを定義して,これらのクラスを処理するコードを記述します。これについては,「SOAP ヘッダーの定義と使用」で説明しています。
- SOAP リクエストを実行しようとしたときにアプリケーションが例外を生成する場合は,その例外が自動的に SOAP 障害パケット内にエンコードされ,メソッド呼び出しの結果のかわりに返されます。単なるエラーメッセージ以上の詳細な情報を伝達する必要がある場合は,エンコードされてクライアントに渡される独自の例外クラスを作成できます。これについては,「Web サービス用のカスタム例外クラスの作成」で説明しています。
- SOAP サーバーアプリケーションウィザードは,新しい Web サービスアプリケーションにパブリッシャコンポーネント(TWSDLHTMLPublish)を追加します。これによってこのアプリケーションは,Web サービスを記述する WSDL ドキュメントをクライアントに公開できます。WSDL パブリッシャについては,「Web サービスアプリケーション用の WSDL ドキュメントの生成」を参照してください。