插入 Java 程式碼以尋找 EJB 實例

您可以使用「片段」視圖插入 Java™ 程式碼,來尋找您已經定義和參照的 Enterprise Bean 實例。

插入的 Java 程式碼會利用 EJB 參照來查閱 Enterprise Bean 的遠端或本端 Home 介面,且會呼叫 "find" 方法來尋找 Enterprise Bean 的實例。

您可以使用「片段」視圖,快速插入這個程式碼, 這樣就不必以手動方式編寫適當的商業邏輯,來尋找 Bean 實例。Java 程式碼產生之後,會插到您正在編輯的 Java 檔的現行作用點。

呼叫 EJB find 方法的片段插入範例

在插入片段之前:
public class Test {

	public void findAccountsPayableByPrimaryKey() { 		 	
		// 將片段插在這裡
		
	}
}
插入片段之後,新增了執行 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() {
		// 將片段插在這裡
		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 自動產生的 catch 區塊
	fe.printStackTrace();
	} catch (RemoteException re) {
		// TODO 自動產生的 catch 區塊
		re.printStackTrace();
		}
	return null;
	}
}

如果要插入 Java 程式碼,來尋找 Enterprise Bean 實例,請執行下列動作:

  1. 在 J2EE 視景中,以編輯器開啟您要在其中尋找 Enterprise Bean 實例的 Java 檔。
  2. 將游標置於 Java 檔中,要插入程式碼的那一點。
  3. 在「片段」視圖中展開 EJB 抽屜,按兩下呼叫 EJB "find" 方法 這時會開啟「尋找插入 EJB」精靈。
  4. 選取您要尋找的 Bean 的 EJB 參照。如果您沒有新增 EJB 參照,必須先加入一個,才能完成這個精靈。 請按一下新建 EJB 參照來開啟新增參照精靈。
  5. 下一步
  6. 如果用戶端和參照 Enterprise Bean 不在相同應用程式伺服器儲存器中,您必須輸入提供者 URL名稱服務類型來尋找所參照的 Enterprise Bean。 否則,您可以選取利用預設環境定義內容來執行這個參照的查閱
  7. 下一步
  8. 選取您要呼叫的 find 方法。
  9. 下一步
  10. 如果需要引數,請在所選方法中,輸入每個參數的值。您所輸入的值,會完全按照畫面所顯示的插入。 如果您要輸入字串值,請務必加上雙引號標示。
  11. 按一下完成。這個動作會在 Java 檔中,加入查閱 Home 介面和尋找 Enterprise Bean 實例所用的 Java 程式碼。
註: serviceLocatorMgr.jar 檔會被當作公用程式 JAR 檔,新增至您所編輯之 Java 類別所屬的每一支企業應用程式中。這個 serviceLocator.jar 檔含有在插入的 Java 程式碼片段中所用的 ServiceLocatorManager 類別。這個類別會將 Home 介面和 InitialContexts 的查閱作業最佳化,並且確保它們在整個應用程式只被查閱一次。 由於新增了公用程式 JAR 檔,因此 Java 檔所屬的模組或 Java 公用程式專案中,也會加入 serviceLocator.jar 檔的 Java JAR 相依關係。

ServiceLocatorManager 類別有一個 static 方法叫做 setErrorHandler(ServiceLocatorErrorHandler handler), 可以指定特定的錯誤處理常式,來處理查閱 Home 介面時所發生的錯誤狀況。預設的處理常式只要針對所處理的異常狀況呼叫 printStackTrace() 即可。

相關工作
插入 Java 程式碼以建立 EJB 實例
插入將訊息傳給 JMS 佇列接聽器的 Java 程式碼
插入 Java 程式碼以呼叫 Session Bean 方法
定義 J2EE 模組中的參照
使用條款 | 讀者意見
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.