EJB Factory 是一種 Access Bean,它可以簡化 Enterprise Bean 實例的建立或尋找作業。
EJB Factory 會封裝兩個物件所提供的功能:InitialContext 和 Enterprise Bean 的 Home 介面。它也可讓您設定提供者 URL 及執行 Enterprise Bean Home 查詢作業所需要的其他設定。
EJB Factory 的 Super 類別會將在命名服務中執行查閱動作的實作詳細資料以及取得 EJB Home 實作所需要的 PortableRemoteObject.narrow() 作業隱藏起來。(請注意,EJB Factory 無法序列化,因為它們是用來取得遠端 EJB 實例的 Helper 類別。)
每當您選擇要利用「新增 Access Bean」精靈產生下列 Access Bean 類型其中之一時,都會自動產生 EJB Factory:
- Java™
Bean Wrapper
- Copy Helper
- 資料類別
建立精靈可讓您指定不同的 Java 套件給新的 Factory 類別。
註: 只有本端用戶端視圖的 Enterprise Bean 不會建立 EJB Factory。
Home 介面對映
EJB Factory 的用途是提供方法,讓您建立指向 Enterprise Bean 遠端物件的參照。Factory 類別會實作 Enterprise Bean Home 介面的方法,並將這些方法呼叫委派給 Enterprise Bean Home 的實例,來做到這一點。Factory 類別會在特定命名服務中執行「查閱」,藉此取得指向 EJBHome 的參照。您可以將這個查閱呼叫導向任何命名服務,或使用預設值。當您第一次呼叫 EJBHome 方法時,實例會執行查閱作業來取得 EJBHome 物件。
JNDI 對映
預設的 JNDI 名稱會產生在每個 Access Bean 類別中。程式碼產生器會使用延伸編輯器中所指定的 JNDI 名稱,依預設,它是 Home 介面名稱。您可以利用 setJNDIName() 來變更 JNDI 名稱。
通常,您不需要變更 JNDI 名稱。不過,如果 Enterprise Bean 部署到不同的 Home 中,管理者就可以新增字首到 JNDI 名稱中來表現其差異。如果要查閱 Home,Access Bean 會取得稱為 rootContext 的命名服務環境定義,如果您知道命名服務 URL 和命名服務類型,就可以對它進行若干限制。 Access Bean 提供兩個用來設定 rootContext 內容的 API。
- setInitialContextFactoryName()
- setInitialContextProviderURL()