ステップ 4: サービス コントロールを追加する

このステップでは、Web サービスにサービス コントロールを追加します。具体的には、CTRL ファイルを追加して、Web サービスで他の外部 Web サービスを呼び出すことができるようにします。この外部 Web サービスでは、クレジット申込者のクレジット カード データを提供します。

このステップでのタスクは次のとおりです。

WSDL ファイルから CTRL ファイルを生成するには

定義により各 Web サービスには、Web サービスの処理方法を記述した WSDL ファイルが用意されています。このタスクでは、他の Web サービスの WSDL ファイルに基づいた CTRL ファイルを自動的に生成します。生成された CTRL ファイルは、独自の Web サービスに組み込んで、独自の Web サービスと外部 Web サービスとのインタフェースを構成します。

  1. 下の図のように、プロジェクト ツリーで tutorials フォルダ、次に tutorial_support フォルダ、最後に CreditCardReport.jws フォルダを順に展開します。

  2. 次のように、CreditCardReportContract.wsdl ファイルを右クリックして、[WSDL から CTRL を生成] を選択します。

新しい CTRL ファイルが生成され、CreditCardReportContract.wsdl の直下に配置されます。

Web サービスに CTRL ファイルを追加するには

このタスクでは、Web サービスに新しい CTRL ファイルを追加します。CTRL ファイルを追加すると、クレジット カード データを提供する外部 Web サービスを呼び出すことができるようになります。

  1. デザイン ビューを表示していない場合は、[デザイン ビュー] タブをクリックします。

  2. 新たに生成した CreditCardReportContract.ctrl をプロジェクト ツリーからデザイン ビューにドラッグ アンド ドロップします。Web サービスに、次に示すような新しいコントロールが追加されます。

外部 Web サービスを呼び出すコードを追加するには

このタスクでは、外部 Web サービスを呼び出すコードを追加します。

  1. [ソース ビュー] タブをクリックします。

  2. requestCreditReportAsynch メソッドを次のように編集します。横線が引かれているコード行は必ず削除します。

    public void requestCreditReportAsynch(String taxID) 
        throws java.sql.SQLException
    {
        /*
         * Query the database via the database control
         */
        Applicant dbApplicant = bankruptciesDB.checkForBankruptcies(taxID);
        /*
         * If the database contains data on the current applicant, 
         * assign the retrieve values to m_currentApplicant. 
         */
        if(dbApplicant != null)
        {
            m_currentApplicant = dbApplicant;
            
creditCardReportControl.getCreditCardData(taxID);
        }
        callback.onCreditReportDone(m_currentApplicant, null); 
    }

外部 Web サービスからのコールバックを処理するコードを追加するには

このタスクでは、外部 Web サービスから返されたクレジット カード情報を処理するコードを追加します。このコードでは 2 つの処理を行います。1 つは適切なクレジット カード データをメンバー変数 m_currentApplicant に格納する処理、もう 1 つは onCreditReportDone コールバックで申込者のプロファイルをクライアントに送信して返す処理を行います。

  1. デザイン ビューを表示していない場合は、[デザイン ビュー] タブをクリックします。

  2. [creditCardDataResult] をクリックします。

  3. コールバック ハンドラを次のように編集します。

    private void creditCardReportControl_creditCardDataResult(CreditCard[] cards)
    {
 
       for(int i = 0; i < cards.length; i++)
        {
            m_currentApplicant.availableCCCredit += cards[i].availableCredit;
        }
 
       callback.onCreditReportDone(m_currentApplicant, null);
    }
  1. 〔Ctrl〕+〔S〕を押して、ファイルを保存します。

Web サービスをテストするには

以上で Web サービスの新機能をテストする準備が整いました。
  1. 次に示す [開始] ボタンをクリックします。

WebLogic Workshop で Web サービスがテストおよびコンパイルされます。ブラウザが起動し、テスト ビューが表示されます。

  1. テスト ビューが起動したら、次のように、requestCreditReportAsynch の [taxID] ボックスに次の 9 桁の番号のいずれかを入力します。
    123456789
    , 111111111, 222222222, 333333333, 444444444, 555555555

  1. [requestCreditReportAsynch] をクリックします。テスト ビュー ページを更新すると、次のように、クライアントが送信したリクエスト パラメータの概要およびサービスの応答の概要が表示されます。

  1. [Message Log] で [更新] ボタンをクリックすると、次のように [Message Log] に新しいエントリが表示されます。

  1. [callback.onCreditReportDone] をクリックします。Web サービスからクライアントに送信されたコールバックが表示されます。

関連トピック

サービス コントロール : 他の Web サービスを使用する
チュートリアルの前後のステップに移動するには、次のいずれかの矢印をクリックしてください。