0
간단한 Java 클래스로 EJB (3.0)을 주입하려면 어떻게해야합니까?Java 클래스로 주입 EJB
Java 클래스에 EJB를 삽입하면 실행시 NullPointerException이 발생합니다.
내 자바 클래스 테스트 :
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가 런타임에 실행되는 컨테이너에는 테스트가 실행되지 않습니다. 그래서 unfornutately, 그것은 EJB를 사용하여 테스트를 실행하는 것은 간단하지가 않습니다! Arquillian 및 REST에 대해 배우십시오. Arquillian은 테스트 중에 컨테이너를 실행하는 방법이며, EJB에 REST API를 구현하면 웹 요청을 통해 해당 API를 테스트 할 수 있습니다. – cslotty