0
我正在創建一個試圖尊重特定外觀/實現設計模式的EJB3模塊。我的外觀應該完全沒有EJB。如何定義EJB3會話bean的構造函數
我在這個模塊中有2個類:一個實體bean和一個會話bean,它是這個實體的管理者。該管理器包含一個EntityManager屬性。
我也有一個工廠,它實例化我的管理器bean,但是這個工廠並不知道管理器的實現(因此不知道EJB)。工廠只能使用屬性文件檢索經理類的名稱。然後,工廠將實例化管理器:
Class lClass = Class.forName (lClassName);
corporateActionManager = (ICorporateActionManager) lClass.newInstance();
我的問題是:我可以宣佈我的經理人實現一個構造函數,然後,該構造函數中,初始化我的EntityManager?
通常情況下,我只想用@PersistenceContext註解EntityManager的上面:
@PersistenceContext(unitName = "my_persistence_unit")
private EntityManager em;
但很顯然,當類直接實例,這並不工作。
我想是這樣的:
public CorporateActionManagerImpl() {
Context jndi;
try {
EntityManagerFactory emf = Persistence.createEntityManagerFactory("my_persistence_unit")
em = emf.createEntityManager();
} catch (NamingException e1) {
e1.printStackTrace();
}
}
但後來我得到一個NoInitialContextException,顯然我的JNDI上下文不正確初始化。
有人能幫我一下嗎?
感謝