EJB インスタンスを作成するための Java コードの挿入

「断片」ビューを使用すると、定義済みのエンタープライズ Bean のインスタンスを作成する Java™ コードを挿入できます。

挿入された Java コードは、 EJB 参照のリモートまたはローカル・ホーム・インターフェースをルックアップして、 エンタープライズ Bean のインターフェースを作成する「create」メソッドを呼び出します。

このコードを素早く挿入するために「断片」ビューを使用すると、 該当するビジネス・ロジックを手操作でコーディングして Bean のインスタンスを作成することを回避することができます。Java コードが生成されて、編集している Java ファイルの現行位置に挿入されます。

EJB create メソッドを呼び出す断片の挿入例:

断片の挿入前:
public class Test {

	public void createMyBean() { 		 	
		// insert snippet here
		
	}
}
断片の挿入後、Bean のルックアップと作成を行うために追加されたコードと共に:
import com.ibm.etools.service.locator.ServiceLocatorManager;
import java.rmi.RemoteException;
import sample.RegistrationFacadeHome;
import sample.RegistrationFacadeRemote;
import javax.ejb.CreateException;
public class Test {

	private final static String STATIC_RegistrationFacadeHome_REF_NAME = "ejb/RegistrationFacade";
	private final static Class STATIC_RegistrationFacadeHome_CLASS = RegistrationFacadeHome.class;
	public void createMyBean() {
		// insert snippet here
		RegistrationFacadeRemote aRegistrationFacadeRemote = createRegistrationFacadeRemote();
	}
	protected RegistrationFacadeRemote createRegistrationFacadeRemote() {
		RegistrationFacadeHome aRegistrationFacadeHome = (RegistrationFacadeHome) ServiceLocatorManager
				.getRemoteHome(STATIC_RegistrationFacadeHome_REF_NAME,
						STATIC_RegistrationFacadeHome_CLASS);
		try {
			if (aRegistrationFacadeHome != null)
				return aRegistrationFacadeHome.create();
		} catch (CreateException ce) {
			// TODO Auto-generated catch block
			ce.printStackTrace();
		} catch (RemoteException re) {
			// TODO Auto-generated catch block
			re.printStackTrace();
		}
		return null;
	}
}

エンタープライズ Bean のインスタンスを作成するための Java コードを挿入する方法:

  1. J2EE パースペクティブで、エンタープライズ Bean のインスタンスを作成する Java ファイルをエディター内で開く。
  2. Java ファイルのコードを挿入するポイントにカーソルを置く。
  3. 「断片」ビューで、EJB ドロワーを拡張して、「EJB「create」メソッドの呼び出し」をダブルクリックする。 「EJB 作成の挿入」ウィザードが開きます。
  4. 作成する Bean の EJB 参照を選択し、「次へ」をクリックする。 EJB 参照を追加していない場合は、まず 1 つを追加しないとこのウィザードを完了できません。 「新規 EJB 参照」をクリックして、 「参照の追加」ウィザードを開きます。
  5. クライアントおよび参照先エンタープライズ Bean が同じアプリケーション・サーバー・コンテナー内にない場合は、 「プロバイダー URL」と「ネーム・サービス・タイプ」を入力して参照先エンタープライズ Bean の場所を指定する必要があります。 それ以外の場合は、「この参照に対するルックアップの実行にデフォルトのコンテキスト・プロパティーを使用する」を選択できます。
  6. 次へ」をクリックする。
  7. 呼び出したい create メソッドを選択する。
  8. 次へ」をクリックする。
  9. 引数が必要な場合、選択されたメソッドの各パラメーターの値を入力する。 入力した値は、正確に挿入されます。ストリング値を入力する場合は、引用符で囲んでいることを確認してください。
  10. 終了」をクリックする。 ホーム・インターフェースをルックアップしてエンタープライズ Bean のインターフェースを作成する Java コードが Java ファイルに追加されます。
注: 編集した Java クラスが含まれる各エンタープライズ・アプリケーションに、 serviceLocatorMgr.jar がユーティリティー JAR ファイルとして追加されます。 この serviceLocator.jar ファイルには、挿入された Java コードの断片内で使用される ServiceLocatorManager クラスが含まれています。このクラスによって、ホーム・インターフェースと InitialContexts のルックアップが最適化され、アプリケーション全体で一度だけルックアップされます。 ユーティリティー JAR ファイルが追加されるので、Java ファイルが属するモジュールまたは Java ユーティリティー・プロジェクトについて、serviceLocator.jar ファイルの Java JAR 依存関係が追加されます。

ServiceLocatorManager クラスには、setErrorHandler (ServiceLocatorErrorHandler ハンドラー) と呼ばれる静的メソッドがあります。 このメソッドを使用すると、ホーム・インターフェースを検索するときに発生するエラー条件に対して、 特定のエラー・ハンドラーを指定できます。デフォルトのハンドラーは、処理される例外について printStackTrace() を呼び出すだけです。

関連タスク
EJB インスタンスを検索するための Java コードの挿入
メッセージを JMS キュー・リスナーに送るための Java コードの挿入
セッション Bean メソッドを呼び出すための Java コードの挿入
J2EE モジュール内の参照の定義

フィードバック