【发布时间】:2016-11-16 16:49:18
【问题描述】:
如何在简单的 java 类中注入 EJB (3.0)?
当在我的 Java 类中注入 EJB 时,执行时我得到一个 NullPointerException。
我的 Java 类测试:
public class test {
@EJB MyEjb myEjb;
public test(){
myEjb.getUserbyId(2); // myEjb = null
}
}
我的 EJB
@Stateless
@LocalBean
public class MyEjb {
@PersistenceContext(unitName="jpa")
EntityManager EM;
public User getUserbyId(Integer id){
....
}
【问题讨论】:
-
您的测试是如何执行的?您的 EJB 是一个在应用服务器上运行的类,它是一个容器。依赖注入只在那里工作——但一般来说,测试是由 JUnit 执行的,而不是在你的容器中,EJB 在运行时所在的容器中。不幸的是,使用 EJB 运行测试并不是那么简单!尝试了解 Arquillian 和 REST.... Arquillian 是在测试期间运行容器的一种方式,如果您在 EJB 中实现 REST API,则可以通过 Web 请求测试该 API。
标签: class jakarta-ee ejb inject