ハンドラーを使用する場合は、WSDD ファイルを構成する必要があります。このファイルには、AxisClient がハンドラー・ライブラリーを呼び出す必要がある時点を管理する規則が指定されます。サービス・ハンドラーおよびグローバル・ハンドラーは、WSDD ファイルの異なるセクションで定義されます。
WSDD ファイルは、Web Services Client for C++ が要求メッセージをビルドし、応答メッセージをデコードするときに使用する情報を格納する XML スタイルのファイルです。 WSDD ファイルには、サービス・ハンドラーに関するセクションとグローバル・ハンドラーに関するセクションの 2 つの主なセクションがあります。 サービス・ハンドラーでは、ハンドラーを要求する各サービス定義を、ピボット前およびピボット後の呼び出し用に提供する適切なハンドラー・リストと共に定義する必要があります。グローバル・ハンドラーでは、WSDD ファイルで必要なのは、ピボット前およびピボット後に呼び出すハンドラーをリストすることだけです。 グローバル・ハンドラーについて詳しくは、WSDD ファイルを参照してください。
次の表に、要求側および応答側の両方でハンドラーを呼び出すために必要な WSDD ファイルの例を行ごとに示します。ハンドラーのファイル名は、オペレーティング・システムによって異なることに注意してください。 この例で使用するファイル名は、 Windows用です。
行番号 | WSDD の行 |
---|---|
1 | <?xml version="1.0" encoding="UTF-8"?> |
2 | <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:C="http://xml.apache.org/axis/wsdd/providers/c"> |
3 | <service name="Handler" provider="CPP:DOCUMENT" description="Handler"> |
4 | <requestFlow> |
5 | <handler name="myClientHandlerReq"
type="<inst_dir>¥samples¥handlers¥myClientHandler.dll">
|
6 | </handler> |
7 | </requestFlow> |
8 | <responseFlow> |
9 | <handler name="myClientHandlerRes"
type="<inst_dir>¥samples¥handlers¥myClientHandler.dll">
|
10 | </handler> |
11 | </responseFlow> |
12 | </service> |
13 | </deployment> |
次の表に、WSDD ファイルの重要な要素を示します。
行番号 | 説明 |
---|---|
2 | deployment タグはルート・エレメントです。 |
3 | service タグは、Axis サービスのタイプを定義します。name 属性は、サービスの名前を定義します。provider 属性は、サービスのプロバイダーの名前を定義します。この属性は、xmlns:C="http://xml.apache.org/axis/wsdd/providers/c”で指定する必要があります。 description 属性は、この行のコメントを定義します。 |
4 | requestFlow タグは、要求メッセージを送信しようとしているときに呼び出される 1 つ以上のハンドラーのリストの開始を定義します。 ハンドラーは、WSDD ファイルに指定された順序で呼び出されます。 |
5 | requestFlow 内の handler タグは、呼び出されるハンドラーの固有の名前およびそのタイプを定義します。これは、ハンドラーのロケーションへの完全修飾パスです。 |
8 | responseFlow タグは、応答メッセージを受け取ったばかりのときに呼び出される 1 つ以上のハンドラーのリストの開始を定義します。ハンドラーは、WSDD ファイルに指定された順序で呼び出されます。 |
9 | responseFlow 内の handler タグは、呼び出されるハンドラーの固有の名前およびそのタイプを定義します。これは、ハンドラーのロケーションへの完全修飾パスです。 |
各タグと、タグ内に含まれている要素についての詳しい説明は、WSDD ファイルを参照してください。