ステップ 3: データベース コントロールを追加する
このステップでは、Web サービスにデータベース コントロールを追加できます。データベース コントロールを使用すると、Web サービスはクレジット申込者の破産情報を含むデータベースにアクセスできます。コントロール、つまり CTRL ファイルは、Web サービスと他のデータ リソース(データベース、他の Web サービス、Java Message Services など)との間のインタフェースとして機能します。
このステップでのタスクは次のとおりです。
このタスクでは、データベース CTRL ファイルを作成し、その CTRL ファイルにメソッドを追加します。追加するメソッドは checkForBankruptcies と呼ばれ、SQL クエリを使用してデータベースに問い合わせます。
デザイン ビューを表示していない場合は、[デザイン ビュー] タブをクリックします。
[コントロールの追加] ドロップダウン リストから [データベース コントロールの追加] を選択します。[データベース コントロールの追加] ダイアログが表示されます。
以下の図に示すとおりに値を入力します。
[作成] をクリックします。
新しく作成されたデータベース コントロールを右クリックして、[メソッドの追加] を選択します。
表示されるフィールドに checkForBankruptcies と入力して、〔Enter〕を押します。
デザイン ビューで、次のように、checkForBankruptcies メソッドに関連付けられた矢印を右クリックして [SQL とインタフェースの編集] を選択します。[SQL およびインタフェースの編集] ダイアログが表示されます。
次の図のように値を入力して、[OK] をクリックします。
以下のテキストを選択してコピーし、[SQL およびインタフェースの編集] ダイアログに貼り付けます。
[SQL] ウィンドウ :
SELECT TAXID, FIRSTNAME, LASTNAME, CURRENTLYBANKRUPT FROM BANKRUPTCIES WHERE TAXID={taxID}
[Java] ウィンドウ :
public Investigate.Applicant checkForBankruptcies(String taxID)
Web サービス コードを編集して CTRL ファイルを組み込むには
次に、追加したデータベース コントロールを利用するために Web サービスのコードを変更する必要があります。コントロール メソッド checkForBankruptcies を呼び出すように requestCreditReportAsynch メソッドを編集します。データベースで見つかった情報は m_currentApplicant メンバー変数に格納されます。
[ソース ビュー] タブをクリックします。
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 retrieved values to m_currentApplicant. */ if(dbApplicant != null) { m_currentApplicant = dbApplicant; } m_currentApplicant.taxID = taxID; callback.onCreditReportDone(m_currentApplicant, null); }
次に、デバッガを使用して Web サービスをテストします。デバッガを使用すると、コード内にブレークポイントを設定して、コードの動作を 1 行ずつ追跡することができます。コード内にブレークポイントを設定すると、Java 仮想マシンはブレークポイントの直前でコードの実行を停止するため、その箇所までのコードを調べることができます。
ソース ビューを表示していない場合は、[ソース ビュー] タブをクリックします。
requestCreditReportAsynch メソッド内で実行されるコードの最初の行にカーソルを置きます。
次のような、ツールバーの [ブレークポイントの切り替え] ボタンをクリックします。
次のように、コードの最初の行にブレークポイントが表示されます。
次のような、ツールバーの [開始してデバッグ] ボタン押します。
テスト ビューのページが表示されます。
[taxID] ボックスに 9 桁の数 222222222 を入力して、[requestCreditReportAsynch] をクリックします。
注意 : Web サービスに追加したデータベースには、6 人分のデータが含まれています。各個人の taxID は 123456789、111111111、222222222、333333333、444444444、および 555555555 です。チュートリアルでは、この 6 つの taxID を使用して Web サービスをテストします。
この Web サービスでは、メソッドの呼び出しとコールバックのルーチンを続けて実行しません。これを検証するには、ブラウザを更新して、サービスが requestCreditReportAsynch で停止したことを確認します。
WebLogic Workshop に戻り、コードの実行が次に示すブレークポイントで停止したことを確認します。
[デバッグ ウィンドウ] ペインの [ローカル] タブで、次のように this および m_currentApplicant のエントリを展開します。
注意 : [デバッグ ウィンドウ] ペインには、Web サービス内の変数に対する現在の値と、コール スタック内の現在の位置に関する情報が表示されます。
次のような、ツールバーの [ステップ イン] ボタンをクリックします。
[ステップ イン] ボタンを押すたびに、requestCreditReportAsynch メソッド内のコードの新しい行が実行されます。m_currentApplicant のプロパティには、データベースから取得した値が格納されます。 [ステップ イン] ボタンをクリックすると、[デバッグ ウィンドウ] の [ローカル] タブ上の m_currentApplicant の値が変わるのが分かります。
Web サービスの実行が終了するまで、[ステップ イン] ボタンをクリックし続けます。
テスト ページを表示するブラウザ ウィンドウに戻り、ブラウザを更新します。
[Message Log] の下の [callback.onCreditRepotDone] をクリックします。クライアント アプリケーションに返信される応答が次のように表示されます。
データベース コントロールの追加とデバッガによる Web サービスのテストが完了しました。チュートリアルの次のステップでは、Web サービスにサービス コントロールを追加します。
データベース コントロール : Web サービスからデータベースを使用する
チュートリアルの前後のステップに移動するには、次のいずれかの矢印をクリックしてください。