알아낼 수없는 한 가지 문제가 발생했습니다. 그것이 EJB 아니라, HelperInterface
외부 라이브러리 인터페이스입니다 : 당신이 볼 수 있듯이, HelperEJB가없는 인터페이스보기를 통해 노출되는다른 EJB에 하나의 EJB를 주입하는 Java EE
@Stateless
public class MainEJB {
@EJB
private HelperEJB helper;
}
@Stateless
public class HelperEJB implements HelperInterface {
}
(참고 :이 같은 다른에 하나의 EJB를 주입하고 싶습니다 인터페이스). 이 작동하지 않습니다, 나는 다음과 같은 예외를 얻을 것이다 : HelperEJB
어떤 인터페이스를 구현하지 않는 경우
javax.naming.NamingException: Lookup failed for 'org.mycompany.ejb.HelperEJB #org.mycompany.ejb.HelperEJB'
그러나 :
@Stateless
public class HelperEJB {
}
그것은 작동합니다. MainEJB와 HelperEJB 사이에 @Local
인터페이스가있는 경우에도 작동합니다.
첫 번째 시도에서와 같이 인터페이스가없는보기를 통해이 작업을 수행 할 수없는 이유는 무엇입니까? 개인 필드가 다음과 같이 인터페이스를 사용하여 선언하는 경우
감사합니다. 작동합니다. 왜 이렇게이다? 다른 EJB가 인터페이스 없음 뷰를 통해 주입되는 경우, 인터페이스를 구현하는 경우 해당 인터페이스 중 하나에서 참조해야합니다. – Dario
@Dario Arjan Tijms가 그의 게시물에서 말했듯이. – deltaforce2