无法在Junit中使用OpenEJB注入EJB

时间:2015-10-02 23:22:23

标签: annotations ejb code-injection openejb

我决定在我的Junit测试中使用TomEE OpenEJB,因为IBM的EmbeddedEJBContainer太有限了。例如,它不支持MDB。

因此,我在Maven POM.xml中添加了许多依赖项,并将所有必需的OpenEJB jar放入我的测试代码中。在BeforeClass方法中,我创建了EmbeddedContainer:

"bower-install": "bower install --allow-root"

这很成功。所以,我认为@EJB注射注释也可以。但事实并非如此。然后我继续询问OpenEJB使用的JNDI上下文。我发现我的EJB引用受到以下子上下文的限制:

“java:global / MyModule / MyEJB!com.company.dept.MyEJB”和“java:global / MyModule / MyEJB”

所以,他们在那里。但是,@ EJB注释注入失败。因此,我继续搜索EJB注释方法的tomcat注释实现。我无法找到。

想知道这里可能有什么问题。我能想到的一些事情:

  1. 不会调用包含OpenEJB的@EJB注释的jar。也就是说,实现javax.ejb.EJB的其他一些jar拦截了tomcat的调用。
  2. 子上下文名称错误。
  3. 我想将MyEJB引用本身绑定到JNDI上下文,以使注入工作但不能匹配实际的子上下文名称。你能指点我正确的方向吗?

    此致

    Student_101

0 个答案:

没有答案