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;
	}
}

手順

  1. Java EE パースペクティブで、エンタープライズ Bean のインスタンスを作成する Java ファイルをエディター内で開き、Java ファイル内のコードを挿入するポイントにカーソルを置きます。
  2. 「スニペット」ビューで、EJB ドロワーを拡張して、「EJB「create」メソッドの呼び出し」をダブルクリックします。 「EJB 作成の挿入」ウィザードが開きます。
  3. 作成する Bean の EJB 参照を選択し、「次へ」をクリックします。 EJB 参照がまだ追加されていない場合は、「新規 EJB 参照」をクリックし、EJB 参照を追加します。ウィザードを完了する前に、参照を追加する必要があります。
  4. クライアントおよび参照先エンタープライズ Bean が同じアプリケーション・サーバー・コンテナー内にない場合は、 「プロバイダー URL」「ネーム・サービス・タイプ」を入力して参照先エンタープライズ Bean の場所を指定する必要があります。 それ以外の場合は、 「この参照に対するルックアップの実行にデフォルトのコンテキスト・プロパティーを使用する」を選択できます。
  5. 「次へ」をクリックします。
  6. 呼び出す create メソッドを選択して、「次へ」をクリックします。
  7. 引数が必要な場合、選択されたメソッドの各パラメーターの値を入力します。 入力した値は、示されているとおりに挿入されます。 ストリング値を入力する場合は、引用符で囲んでいることを確認してください。
  8. 「終了」をクリックします。 ホーム・インターフェースをルックアップしてエンタープライズ Bean のインスタンスを作成する Java コードが Java ファイルに追加されます。

タスクの結果

注: 編集した Java クラスが含まれる各エンタープライズ・アプリケーションに、 serviceLocatorMgr.jar がユーティリティー JAR ファイルとして追加されます。 この serviceLocator.jar ファイルには、挿入された Java コードの断片内で使用される ServiceLocatorManager クラスが含まれています。このクラスによって、ホーム・インターフェースと InitialContexts のルックアップが最適化され、アプリケーション全体で一度だけルックアップされるようになります。 ユーティリティー JAR ファイルが追加されるので、Java ファイルが属するモジュールまたは Java ユーティリティー・プロジェクトについて、serviceLocator.jar ファイルの Java JAR 依存関係が追加されます。

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


フィードバック