Web サービスの開発時、通常、テスト クライアントを使用して直接テストすることができます。状況によっては、テスト用のクライアントとして機能する Web サービスを別個に作成することによって、間接的にテストすることが必要な場合もあります。
テスト クライアントには、テストしたいパラメータ値を指定して Web サービスのオペレーションをテストできるインタフェースが用意されています。テスト クライアントでは、以下のことができます。
注意 : IDE を使用せずにテスト クライアントを起動することもできます。
テスト クライアントの使用例については、「Web サービス チュートリアル : 手順 4 : Web サービスをテストする」を参照してください。
Workshop を使用した Web サービスのテストの手順は、ビジュアル インタフェースでテスト クライアントを起動し、Web サービスのオペレーションを呼び出すという簡単なものです。以下に、各ステップを示します。
テスト クライアントが表示されている場合、オペレーションの名前が付いたボタンをクリックしてテストするオペレーションを選択します。オペレーションにパラメータがある場合は、テストする値を入力するためのボックスが表示されます。
オペレーションにパラメータとして複合型が含まれている場合、テスト値のプレースホルダを含む XML テンプレートが表示されます。たとえば、次の図は 1 つの String プレースホルダに「Gladys Kravitz」が入力されて、もう 1 つのプレースホルダがテスト値と置き換えられようとしているテンプレートを示しています。
テスト クライアントには、会話形式の Web サービスをテストできる特別なリンクがあります。
会話形式の Web サービスのテスト時、テスト クライアントでは、会話の現行フェーズで有効なオペレーションのみが表示されます。つまり、テストの開始時は、START メソッドのみが表示されます。テスト クライアントでは、会話の移動用に次のボタンが提供されます。
メッセージ ログでは、会話に従って呼び出されるオペレーションがグループ化されており、各メッセージが会話内で時間順に表示されながらテストされます。
オペレーションの実行時、オペレーションによって交換されるメッセージの情報の表示が更新されます。ユーザ インタフェースには、メッセージ XML 自体だけではなく、メッセージ値の概要も表示されます。この情報は、オペレーション メッセージおよびコールバック メッセージに提供されます。例外の発生時は、エラー メッセージが表示されます。
メッセージ XML では、メッセージ ペイロードの最も重要な部分以外が灰色で表示されます。
Web サービス オペレーションの実行後、オペレーションに関連するメッセージの情報が表示されます。要求の概要で、メッセージ内容の概略が表示されます。ここでは、タイムスタンプ情報とともにパラメータと戻り値 (存在する場合) が表示されます。
[Message Log] リストには、Web サービス オペレーションのテストごとに独自のエントリがあります。したがって、異なる値を使用してテストを比較することができます。
要求の概要の下に、メッセージ XML が表示されます (次の画像を参照)。オペレーションの要求とその戻り値に対するメッセージが表示されています。
Web サービスがコールバックを送信する場合、[Message Log] リストのコールバック名をクリックすると、その実行結果を表示できます。コールバックが実行されるまでコールバックのログ エントリは表示されないので、エントリを表示するには、ある時間経過した後にテスト クライアントの更新が必要になる場合があります (メッセージ ログの上部にある [Refresh] ボタンをクリックします)。
オペレーション メッセージと同様に、コールバック メッセージのデータも概要とメッセージ XML として表示されます。コールバック要求メッセージには、コールバックによって Web サービスに送信されるデータが記述されています。
Web サービスのテストでエラーまたは例外が発生すると、その結果のメッセージが表示されます。次の概要の例では、エラーが記述されています。ここでは、オペレーションの引数に int 型ではなく String 型が指定されています。
その下にメッセージ XML も表示されます。
[Test Client] ウィンドウの最上部にある WSDL URL をクリックすると、テスト中の Web サービスの WSDL ファイルを表示できます。
[Test Client] ウィンドウの最上部にある [Choose Another WSDL] リンクをクリックすると、テスト クライアントを閉じずに別の Web サービスをテストすることができます。WSDL URL を入力するボックスが付いたページが表示され、[Test] をクリックすると、その Web サービスのテスト フォームが表示されます。
Web ブラウザ経由でクライアントを起動することによって、IDE を使用しないでテスト クライアントを使用することができます。
Web サービスによっては、テスト クライアントを使用してスタンドアロンでテストできないものもあります。この場合、テスト目的が主の Web サービスのクライアントとして機能する別個の Web サービスを作成する必要があります。テストする Web サービスが次のような場合、このような「間接的な」方法でテストする必要があります。
サービス コントロールとそのコントロールのクライアントを設定することで、Web サービスをテストできます。サービス コントロールとコントロール クライアントを設定する基本的な手順は次のとおりです。なお、すべてのテストにおいて、個別の Web サービス クライアントを作成する必要はありません。
トランザクション対応の Web サービスをデバッグする場合は、デバッガによって発生する遅延に対応するために、トランザクションのタイムアウト期間を増やすことを検討してください。デフォルトのタイムアウトは 30 秒ですが、特に Web サービスが会話形式の場合など、一定のデバッグ状況では短すぎる可能性があります。
タイムアウト期間を増やすには、@weblogic.jws.Transactional アノテーションで timeout 属性を使用します。
@WebService @Transactional(value=true, timeout=600) // タイムアウト期間を 600 秒 (10 分) に増やす public class TransactionalService implements Serializable { ... }