手順 7 : Web サービスからコントロールを使用する

この節では、カスタム コントロールのメソッドを呼び出すために、Web サービスにメソッドを挿入します。

コントロールの挿入

  1. [プロジェクト・エクスプローラー] ビューで、Web サービス ファイル ServicesWeb/Java リソース/src/services/MailingListService.java をダブルクリックします。
  2. [デザイン ビュー] エディタを右クリックし、[新しいコントロール参照] を選択します。

    新しいコントロール参照

    [コントロールの選択] ダイアログでは、前に controls パッケージに作成した MailingListControl を含めて、既存のさまざまなコントロールから選択できます。

  3. [MailingListControl - controls] を選択し、[OK] をクリックします。

  4. 〔Ctrl〕+〔Shift〕+〔S〕を押して作業を保存します。

[デザイン ビュー] では、Web サービスが次のようになっているはずです。

[ソース ビュー] での Web サービス コードは次のようになります。

package services;

import javax.jws.*;
import org.apache.beehive.controls.api.bean.Control;
import controls.MailingListControl;

@WebService
public class MailingListService {

    @Control
    private MailingListControl mailingListControl;

    @WebMethod
    public String getCustomers() {
        return "John Smith";
    }
}

Workshop によって、MailingListControl に必要なインポート文が追加されている点に注目します。MailingListControl 型で mailingListControl という名前のコントロールの変数宣言も追加されています。@Control アノテーションを追加することによって、mailingListControl がコントロールであると宣言されています。

コントロールのメソッドの呼び出し

作成した MailingListControl のインスタンスである mailingListControl のメソッドを呼び出すメソッドを、サービスに追加します。

  1. [デザイン ビュー] で、コントロール メソッド getLocalCustomers を右クリックし、[代理メソッドの生成] を選択します。

    対応するメソッドが Web サービスのクライアント インタフェースに追加されます。

  2. 〔Ctrl〕+〔Shift〕+〔S〕を押して作業を保存します。

Web サービス クラスのソース コードは次のようになります。

package services;

import javax.jws.*;
import org.apache.beehive.controls.api.bean.Control;
import controls.MailingListControl;
 
@WebService
public class MailingListService {
 
    @Control
    private MailingListControl mailingListControl;
 
    @WebMethod()
    public String getCustomers() {
        return "John Smith";
    }

    @WebMethod
    public model.Customer[] getLocalCustomers() {
        return mailingListControl.getLocalCustomers();
    }
}

新しいメソッドはコントロール メソッド getLocalCustomers を呼び出します。このコントロール メソッドは、サンプル データベース内のカリフォルニア州のすべての顧客を Customer オブジェクトの配列として返します。

次の手順では、新しいメソッドをテストします。

チュートリアルを移動するには、矢印をクリックしてください。


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