看着this answer,它說:如何使@EJB注射在服務器上工作?
如果你不想使用的應用程序客戶端容器,而是隻運行通過java命令的應用程序客戶端類,注射是不可能的,你會必須執行JNDI查找。
然而,鑑於我試圖注入DAO豆like the example shown here,如果我不能做到自動注射,這意味着我的應用程序必須手動JNDI查找,所有的交易開始/結束,我會得到如果@EJB實際工作,則免費。
但是,因爲所有東西都在同一個Eclipse EJB項目中(當我在Dynamic Web Project中有我的客戶端代碼時,它也失敗了同一個空的句柄),當然必須有一個簡單的方法來讓它工作?任何人都可以提出我做錯了什麼?
最後,this article suggests不需要的DAO的,但如果我代替我的EJB中:用更直接的
@EJB MyDao dao;
:
@PersistenceContext private EntityManager em;
我仍然得到同樣的空值;這是相同的注射失敗問題嗎?
NB:我剛纔注意到this answer:
這是一個bug in Glassfish(顯然是在Web服務棧)。
我正在運行v4.0 Build 89,它還有這個bug嗎?這是否意味着我必須以冗長的方式來執行所有JPA操作?