Web サービスは大抵の場合、SOAP over HTTP プロトコルを使用します。このシナリオで、SOAP エンベロープは送信されます。コレクションやその他複雑なオブジェクトが SOAP エンベロープにバンドルされている場合、ASCII データ構造を読み書きしづらくなる可能性があります。開発者は、SOAP エンベロープを直接操作して Web サービス クライアントをビルドしようとしてはなりません。経験豊富な開発者は、大抵 Web サービス クライアントのビルドを、SOAP エンベロープのレベルでは行いません。これを行うことは、面倒であり間違いの元でもあります。このため、すべての主なプログラミング言語で、Web サービス開発キットが提供されています。Silk Central では、SOAP メッセージを使用して通信する Web サービスやクライアントの構築に Java API for XML Web Services (JAX-WS) を使用しています。
実装言語(Java、C++、C#、Perl、Python)にかかわらず、Web サービス クライアントの構築の場合、大抵の場合、同じパターンに従います。
例:wsimport -s <生成するスタブの場所> -p <ターゲット パッケージ> <WSDL>
wsimport ツールは、Web サービスのクライアントをサポートするために、複数のクラスを生成します。サービス名が YourWebService である場合、次のクラス群が出力されることになります。
Silk Central Web サービスにアクセスする JAX-WS クライアントを生成するには、YourWebServiceClient という新しい Java クラスを作成します。Web サービスにはポートを介してバインドする必要があります。ポートは、リモート サービスのプロキシとして動作するローカル オブジェクトです。ポートは、上記手順で示した wsimport ツールの実行によって作成されます。このプロキシを取得するには、getRequirementsServicePort メソッドをサービスに対して呼び出します。
// Bind to the Requirements service RequirementsServiceService port = new RequirementsServiceService (new URL("http", mHost, mPort, "/Services1.0/jaxws/requirements?wsdl")); RequirementsService requirementsService = port.getRequirementsServicePort();
Web サービスの認証には、Silk Central UI の ユーザー設定 ページで生成した Web サービス トークンを使用できます。このページにアクセスするには、Silk Central メニューに表示されているユーザー名にマウス カーソルを移動し、ユーザー設定 を選択します。
また、ユーザー名とパスワードを指定してサービスの logonUser メソッドを呼び出してセッション ID を取得することもできます。
// Login to Silk Central and get session ID String sessionId = requirementsService.logonUser(mUsername, mPassword);