0
我想用netbeans中的JUnit測試一個無狀態bean。這個bean使用一個EntityManager。使用JUnit測試EJB 3.1獲取錯誤無效的資源
@Stateless
public class myEjb{
@PersistenceContext
private EntityManager em;
public MyResult getResult(){
return em.find(...);
}
}
然後我寫了一個測試類。
public class myTest{
private static EJBContainer ec;
private static Context ctx;
@BeforeClass
public static void setUpClass(){
ec = EJBContainer.createEJBContainer();
ctx = ec.getContext();
}
....
}
當我運行測試,這是行不通的。我得到了以下信息: 無效的資源:執行此線時mydb__pm 出現的錯誤:通過刪除實體管理器
ec = EJBContainer.createEJBContainer();
如果改變我的豆,它的工作原理。所以,我似乎對實體經理有問題。 我的persistence.xml文件很簡單:
<persistence version="2.0" ...>
<persistence-unit name="MetisDemoPU" transaction-type="JTA">
<jta-data-source>MyDb</jta-data-source>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<properties/>
</persistence-unit>
</persistence>
最後,我創建了一個JSF託管Bean,它被稱爲我的EJB(使用實體管理器)和它的作品。
@ManagedBean
@RequestScoped
public class myManagedBean{
@EJB
private OfferEjb offerEjb;
...
}
任何幫助,將不勝感激!