2012-05-01 3 views
0

maven 테스트로 실행되는 maven 클라이언트 프로젝트가 있습니다. junit 테스트에서 제일 먼저하는 일은 jndi 문자열을 사용하는 검색입니다. 여기에 나는 원격 인터페이스에 캐스팅 된 상태없는 빈 프록시를 받는다. 최대한 빨리 인터페이스에서 메소드를 호출 나는 예외를 수신 (일부 도메인을 절약 같은 객체 느릅 나무가 사용하는 데이터 액세스 개체 느릅 나무는 JPA를 사용)Maven 테스트를 실행할 때 NoSuchEJBException이 발생했습니다.

javax.ejb.NoSuchEJBException: No such EJB[appname=,modulename=someName,distinctname=,beanname=SomeBean] 

문서는 말한다 : 시도 인 경우 "A NoSuchEJBException가 발생합니다 상태가없는 세션이나 더 이상 존재하지 않는 싱글 톤 객체에서 비즈니스 메소드를 호출하도록 만들어졌다. " 것은 bean이 상태없는 것이고 stateful 또는 singleton이 아니라는 것입니다. 나는 또한 jndi 문자열이 정확하다는 것을 확신합니다. 클라이언트 프로젝트의 main 메소드에서 동일한 조회 및 지속성 메소드 호출 ("install jboss-as : deploy"로 실행되는 maven 빌드로 실행) 잘 작동합니다. 테스트 할 때 프록시에서 지속성 방법을 사용할 수있는 방법에 대한 제안 사항이 있습니까? 일부 동료들은 비슷한 설정을 사용하며 Arquillian이 없어도 사용할 수 있습니다.

+0

동료는 원격 인터페이스를 통해 비 상태 세션 비긴을 사용합니까? – esej

+0

네, 그렇게 생각합니다. – user764754

답변

0

이유는 모르겠지만 지금은 작동합니다. 내가 한 것은 모든 DaoBeans가 상속하는 추상적 인 DaoBean 내의 EntityManager에 대한 getter-method를 제거하는 것이 었습니다. 클라이언트를 실행하는 동안 getter가 Error로 갑자기 표시되었습니다 (이전에는 오류로 표시되지 않음).

관련 문제