テスト クライアントを使用した Web サービスのテスト

Web サービスの開発時、通常、テスト クライアントを使用して直接テストすることができます。状況によっては、テスト用のクライアントとして機能する Web サービスを別個に作成することによって、間接的にテストすることが必要な場合もあります。

テスト クライアントを使用した Web サービスのテスト

テスト クライアントには、テストしたいパラメータ値を指定して Web サービスのオペレーションをテストできるインタフェースが用意されています。テスト クライアントでは、以下のことができます。

注意 : IDE を使用せずにテスト クライアントを起動することもできます。

テスト クライアントの使用例については、「Web サービス チュートリアル : 手順 4 : Web サービスをテストする」を参照してください。

テスト クライアントのユーザ インタフェース

基本的なテスト手順

Workshop を使用した Web サービスのテストの手順は、ビジュアル インタフェースでテスト クライアントを起動し、Web サービスのオペレーションを呼び出すという簡単なものです。以下に、各ステップを示します。

  1. WebLogic Server を起動します。
  2. プロジェクト ツリーを展開して Web サービスのソース ファイルを表示します。
  3. ソース ファイルを右クリックして、[実行|サーバーで実行] をクリックします。
  4. テスト クライアントが表示されたら、テストするオペレーションを選択します
  5. オペレーションにパラメータがある場合は、指定のボックスにテスト値を入力します。
  6. オペレーションの名前が付いたボタンをクリックします。
  7. テストの結果を検証します
  8. [Message Log] リストを使用して複数のテスト結果を表示します。
  9. Web サービスがコールバックを受信するように設計されている場合、[Message Log] リストでコールバックの名前をクリックしてコールバック値を表示します (コールバックが即時実行するように設計されていない場合は、テスト クライアントの更新が必要な場合があります)。
  10. [Show Operations] をクリックして別のテストを開始します。

テストするオペレーションを選択する

テスト クライアントが表示されている場合、オペレーションの名前が付いたボタンをクリックしてテストするオペレーションを選択します。オペレーションにパラメータがある場合は、テストする値を入力するためのボックスが表示されます。

複合型のパラメータ

オペレーションにパラメータとして複合型が含まれている場合、テスト値のプレースホルダを含む XML テンプレートが表示されます。たとえば、次の図は 1 つの String プレースホルダに「Gladys Kravitz」が入力されて、もう 1 つのプレースホルダがテスト値と置き換えられようとしているテンプレートを示しています。

会話形式の Web サービスのテストに進む

テスト クライアントには、会話形式の Web サービスをテストできる特別なリンクがあります。

会話形式の Web サービスのテスト時、テスト クライアントでは、会話の現行フェーズで有効なオペレーションのみが表示されます。つまり、テストの開始時は、START メソッドのみが表示されます。テスト クライアントでは、会話の移動用に次のボタンが提供されます。

メッセージ ログでは、会話に従って呼び出されるオペレーションがグループ化されており、各メッセージが会話内で時間順に表示されながらテストされます。

メッセージ内容を検証する

オペレーションの実行時、オペレーションによって交換されるメッセージの情報の表示が更新されます。ユーザ インタフェースには、メッセージ XML 自体だけではなく、メッセージ値の概要も表示されます。この情報は、オペレーション メッセージおよびコールバック メッセージに提供されます。例外の発生時は、エラー メッセージが表示されます。

メッセージ XML では、メッセージ ペイロードの最も重要な部分以外が灰色で表示されます。

オペレーション メッセージ

Web サービス オペレーションの実行後、オペレーションに関連するメッセージの情報が表示されます。要求の概要で、メッセージ内容の概略が表示されます。ここでは、タイムスタンプ情報とともにパラメータと戻り値 (存在する場合) が表示されます。

[Message Log] リストには、Web サービス オペレーションのテストごとに独自のエントリがあります。したがって、異なる値を使用してテストを比較することができます。

要求の概要の下に、メッセージ XML が表示されます (次の画像を参照)。オペレーションの要求とその戻り値に対するメッセージが表示されています。

コールバック メッセージ

Web サービスがコールバックを送信する場合、[Message Log] リストのコールバック名をクリックすると、その実行結果を表示できます。コールバックが実行されるまでコールバックのログ エントリは表示されないので、エントリを表示するには、ある時間経過した後にテスト クライアントの更新が必要になる場合があります (メッセージ ログの上部にある [Refresh] ボタンをクリックします)。

オペレーション メッセージと同様に、コールバック メッセージのデータも概要とメッセージ XML として表示されます。コールバック要求メッセージには、コールバックによって Web サービスに送信されるデータが記述されています。

例外メッセージ

Web サービスのテストでエラーまたは例外が発生すると、その結果のメッセージが表示されます。次の概要の例では、エラーが記述されています。ここでは、オペレーションの引数に int 型ではなく String 型が指定されています。

その下にメッセージ XML も表示されます。

WSDL ファイルを表示する

[Test Client] ウィンドウの最上部にある WSDL URL をクリックすると、テスト中の Web サービスの WSDL ファイルを表示できます。

WSDL リンク

テストする別の Web サービスを選択する

[Test Client] ウィンドウの最上部にある [Choose Another WSDL] リンクをクリックすると、テスト クライアントを閉じずに別の Web サービスをテストすることができます。WSDL URL を入力するボックスが付いたページが表示され、[Test] をクリックすると、その Web サービスのテスト フォームが表示されます。

IDE を使用しないでテスト クライアントを起動する

Web ブラウザ経由でクライアントを起動することによって、IDE を使用しないでテスト クライアントを使用することができます。

  1. サーバが実行している状態で、ブラウザ ウィンドウを開いて次の URL に移動し、テスト クライアントを起動します。
  2. http://localhost:7001/wls_utc

  3. [Enter WSDL URL] ボックスに、テストする Web サービスの WSDL の URL を入力して、[Test] をクリックします。

間接的にテストするように Web サービス クライアントを設定する

Web サービスによっては、テスト クライアントを使用してスタンドアロンでテストできないものもあります。この場合、テスト目的が主の Web サービスのクライアントとして機能する別個の Web サービスを作成する必要があります。テストする Web サービスが次のような場合、このような「間接的な」方法でテストする必要があります。

サービス コントロールとそのコントロールのクライアントを設定することで、Web サービスをテストできます。サービス コントロールとコントロール クライアントを設定する基本的な手順は次のとおりです。なお、すべてのテストにおいて、個別の Web サービス クライアントを作成する必要はありません。

  1. 新しい Web サービス プロジェクトを作成するには、[ファイル|新規|プロジェクト|Web サービス|Web サービス プロジェクト] を選択します。クライアント関連のクラスはすべて、対象の Web サービスとは別のプロジェクトの中に作成してください。
  2. WSDL ファイルを生成するには、[プロジェクト・エクスプローラー] タブで、目的の Web サービス ファイルを右クリックして [Web サービス|WSDL を生成] を選択します。WSDL ファイルが生成されたら、そのファイルを新しい Web サービス プロジェクトにドラッグ アンド ドロップします。src ディレクトリの下の適切なパッケージの中に WSDL をドロップしてください。
  3. Web サービス コントロールを生成するには、WSDL ファイルを右クリックして [Web サービス|サービス コントロールの生成] を選択します。
  4. クライアント Web サービスを生成するには、[ファイル|新規|WebLogic Web サービス] を選択します。[新しい Web サービス] ダイアログに入力して、Web サービス クラスを作成します。
  5. クライアント クラスのソース ビューの任意の個所を右クリックして [挿入|コントロール] を選択し、Web サービス コントロールをクライアントに追加します。上記で生成されたサービス コントロールを選択します。
  6. クライアント クラスのソース ビューの任意の個所を右クリックして [挿入|コントロールのイベント ハンドラ] を選択し、イベント ハンドラをクライアントに追加します。サービス コントロールから必要なイベント メソッドを選択します。
  7. 最後に、サービス コントロールのメソッドを呼び出すメソッドを、クライアントに追加します。
  8. [プロジェクト・エクスプローラー] で右クリックして [実行|サーバーで実行] を選択し、クライアントを実行します。デフォルトでは、テスト クライアントに Web サービスが表示されます。

トランザクション対応の Web サービスや会話形式の Web サービスのデバッグ

トランザクション対応の Web サービスをデバッグする場合は、デバッガによって発生する遅延に対応するために、トランザクションのタイムアウト期間を増やすことを検討してください。デフォルトのタイムアウトは 30 秒ですが、特に Web サービスが会話形式の場合など、一定のデバッグ状況では短すぎる可能性があります。

タイムアウト期間を増やすには、@weblogic.jws.Transactional アノテーションで timeout 属性を使用します。

    @WebService
    @Transactional(value=true, timeout=600) // タイムアウト期間を 600 秒 (10 分) に増やす
    public class TransactionalService implements Serializable {
        ...
    }

関連トピック

サービス コントロール


さらにヘルプが必要ですか。質問は Workshop ニュース グループまでお寄せください。