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

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

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

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

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

断片の挿入前:
public class Test {

	public void findAccountsPayableByPrimaryKey() { 		 	
		// insert snippet here
		
	}
}
断片の挿入後、Bean のルックアップと、引数が指定されていない findByPrimaryKey メソッドの呼び出しを行うために追加されたコードと共に:
import sample.Accountspayable;
import sample.AccountspayableKey;
import com.ibm.etools.service.locator.ServiceLocatorManager;
import java.rmi.RemoteException;
import sample.AccountspayableHome;
import javax.ejb.FinderException;
public class Test {

	private final static String STATIC_AccountspayableHome_REF_NAME = "ejb/Accountspayable";
	private final static Class STATIC_AccountspayableHome_CLASS = AccountspayableHome.class;
	public void findAccountsPayableByPrimaryKey() {
		// insert snippet here
		Accountspayable anAccountspayable = find_AccountspayableHome_findByPrimaryKey(primaryKey);
	}
	protected Accountspayable find_AccountspayableHome_findByPrimaryKey(
			AccountspayableKey primaryKey) {
		AccountspayableHome anAccountspayableHome = (AccountspayableHome) ServiceLocatorManager
				.getRemoteHome(STATIC_AccountspayableHome_REF_NAME,
						STATIC_AccountspayableHome_CLASS);
		try {
			if (anAccountspayableHome != null)
				return anAccountspayableHome.findByPrimaryKey(primaryKey);
		} catch (FinderException fe) {
			// TODO Auto-generated catch block
			fe.printStackTrace();
		} catch (RemoteException re) {
			// TODO Auto-generated catch block
			re.printStackTrace();
		}
		return null;
	}
}

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

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

フィードバック