エンタープライズ JavaBean (EJB) コントロールを使用すると、デプロイされた既存のセッション EJB をアプリケーション内で簡単に使用できます。EJB3 コントロールを作成するには、まず EJB の (ローカルまたはリモート) ビジネス インタフェースをアプリケーションで使用可能にする必要があります。
EJB3 コントロールを作成する前に、EJB のローカル インタフェースまたはリモート インタフェースをアプリケーションで認識する必要があります。EJB がアプリケーションの一部ではない場合は、EJB の JAR ファイルを Workshop アプリケーションに追加して EJB を使用可能にします。Workshop は、EJB JAR ファイルを使用することで、EJB のインタフェースにアクセスできるようになりますが、実際に必要なクラスは EJB のリモート インタフェース クラスと、メソッド パラメータやメソッドの戻り値の型として EJB が外部的に使用するクラスだけです。EJB コンパイラの ejbc は、この目的に合わせてクライアント JAR を生成できます。
新しい EJB3 コントロールを作成するには、次の手順に従います。
import org.apache.beehive.controls.api.bean.ControlExtension; import com.bea.control.SessionEJB3Control.EJBLookup; @ControlExtension @EJBLookup(jndiName="some_value") public interface MyCtrl extends <EJB3_business_intf>, com.bea.control.SessionEJB3Control { }
EJB3 コントロールを Web サービス、Web アプリケーション、または他のコントロールに挿入するには、「EJB3 コントロールの使用」を参照してください。
コントロールが EJB のインタフェースを単に拡張しただけであることがわかります。他の一部のコントロールとは異なり、EJB3 コントロールのクラス定義には EJB のメソッドを呼び出すメソッド宣言が含まれません。つまり、EJB3 コントロールは EJB への参照とそのメソッドのエクスポーズを提供するだけであり、これらのメソッドへのアクセスを制限する (変更する) ために使用することはできません。
EJB3 コントロールでエクスポーズされている EJB メソッドを参照するには、EJB3 コントロールを Web サービスまたはページ フローに挿入します。
EJB のメソッドを変更したり、EJB3 コントロールが参照するインタフェースにメソッドを追加したりする場合は、EJB3 コントロールを変更する必要はありません (ただし、EJB を再ビルドする必要があります)。使用されるインタフェースの名前、JNDI 名 (EJB3 コントロールが JNDI 名を使用する場合)、または Bean 名もしくは EJB JAR 名 (EJB3 コントロールが ejb-link を使用する場合) を変更する場合は、これらの変更を反映するように EJB3 コントロールを変更する必要があります。