2011-11-28 2 views
1

EJB 테스트를 위해 Tomcat6.33에 포함 된 OpenEJB 3.1을 사용하고 있습니다. 이제 EJB에서 CDI를 사용하려고합니다. 나는 Tomcat에서 CDI를 사용하기위한 설정을 했으므로 이제는 내 서블릿에서 @Inject를 사용할 수 있으며 모든 것이 잘 동작한다.Tomcat OpenEJB 및 CDI

그러나 내 EJB에서 @Inject를 사용하려고하면 Null Pointer가 실패합니다 (객체가 삽입되지 않았기 때문에). Tomcat 내부의 임베디드 OpenEJB에서 어떻게 CDI를 사용할 수 있습니까?

감사

+1

CDE 지원이 OpenEJB 4.x에 추가되었습니다. –

답변

0

당신이 제공하는 정보에서 말할 하드 비트. 관련 프로젝트에 beans.xml을 배포 했습니까? beanmanager에 주위에 무엇이 있는지 쿼리 해보십시오. OpenEJB 구성 요소가 ManagedBeans로 인식됩니까?

+0

예, 프로젝트에 beans.xml이 있습니다. Bean Manager를 쿼리하려고했지만 BeanManager도 주입되지 않습니다. OpenEJB 구성 요소가 ManagedBeans로 인식되는지 어떻게 확인할 수 있습니까? – user667022

+0

No BeanManager 없음 -이 설정으로 인해 발생하는 문제와 같은 냄새가납니다. @BeanDiscovery 바로 뒤에있는 모든 것을 덤프하는 작은 확장을 등록해야합니다. BeanManager를 observer-method에 바로 주입시킬 수 있습니다. –

+0

이 설정은 TomEE 플러스 프로필로 잘 작동합니다. 하지만 이전 버전으로 부트 스트랩하여 다른 사람들이 업그레이드하지 않도록 노력했습니다. – user667022