Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用JUnit测试EJB3.1时,获取无效资源时出错_Junit_Persistence_Java Ee 6_Entitymanager - Fatal编程技术网

使用JUnit测试EJB3.1时,获取无效资源时出错

使用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

我正在尝试在netbeans中使用JUnit测试无状态bean。这个bean使用EntityManager

@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\