使用JUnit测试EJB3.1时,获取无效资源时出错
我正在尝试在netbeans中使用JUnit测试无状态bean。这个bean使用EntityManager使用JUnit测试EJB3.1时,获取无效资源时出错,junit,persistence,java-ee-6,entitymanager,Junit,Persistence,Java Ee 6,Entitymanager,我正在尝试在netbeans中使用JUnit测试无状态bean。这个bean使用EntityManager @Stateless public class myEjb{ @PersistenceContext private EntityManager em; public MyResult getResult(){ return em.find(...); } } 然后我编写了一个测试类 public class myTest{ pr
@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\uuu pm
执行此行时会发生错误:
ec = EJBContainer.createEJBContainer();
如果通过删除实体管理器来更改my bean,那么它是有效的。因此,我似乎对实体经理有问题。
我的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>
任何帮助都将不胜感激 好的,我找到了解决问题的办法。我现在可以使用JUnit在持久性上下文中测试会话bean。 我不是专家,所以我的解释可能不完整。 对于netbeans 7.2,有一个用于测试的嵌入式glassfish服务器。有必要在domain.xml文件中配置jdbc参数,然后对我来说就可以了。 在我的计算机上,此文件处于
C:\Program Files\glassfish-3.1.2.2\glassfish\domains\domain\
我只是添加了一个jdbc连接池和一个JDVCJNDI
C:\Program Files\glassfish-3.1.2.2\glassfish\domains\domain\