您可以使用「片段」視圖插入 Java™ 程式碼,來尋找您已經定義和參照的 Enterprise Bean 實例。
插入的 Java 程式碼會利用 EJB 參照來查閱 Enterprise Bean 的遠端或本端 Home 介面,且會呼叫 "find" 方法來尋找 Enterprise Bean 的實例。
您可以使用「片段」視圖,快速插入這個程式碼, 這樣就不必以手動方式編寫適當的商業邏輯,來尋找 Bean 實例。Java 程式碼產生之後,會插到您正在編輯的 Java 檔的現行作用點。
呼叫 EJB find 方法的片段插入範例
public class Test { public void findAccountsPayableByPrimaryKey() { // 將片段插在這裡 } }
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 實例,請執行下列動作:
ServiceLocatorManager 類別有一個 static 方法叫做 setErrorHandler(ServiceLocatorErrorHandler handler), 可以指定特定的錯誤處理常式,來處理查閱 Home 介面時所發生的錯誤狀況。預設的處理常式只要針對所處理的異常狀況呼叫 printStackTrace() 即可。