1
Jboss에 배포 한 기존 서비스 bean이 있습니다. 불행히도 그것은 dataSource 참조가 JNDI 서비스의 "mappedName"조회를 통해 데이터 소스 참조를 삽입하도록 구성되었습니다.@Resource dataSource mappedName - 비 JNDI 환경에서 테스트 할 재정의 env
@Resource(name = "dataSource", mappedName = "java:/OracleDS")
private DataSource dataSource = null;
비 JNDI 환경에서 Bean을 테스트하고 싶습니다. JNDI가 아닌 환경에서 실행할 때이 예외가 발생할 것으로 예상됩니다.
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating
bean with name 'myService': Injection of resource fields failed; nested exception
is org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean
definition with name 'java:/OracleDS' defined in JNDI environment: JNDI lookup
failed; nested exception is javax.naming.NoInitialContextException: Need to
specify class name in environment or system property, or as an applet parameter,
or in an application resource file: java.naming.factory.initial
는 난이 후, 생산 테스트 스프링 컨텍스트 데이터 소스를 정의 할 수 있기 때문에, mappedName 제한을 삭제하는 수정하는 빠른 방법을 깨닫는다. 하지만 내가 할 수없는 경우. 위의 예외를 피하기 위해 테스트 봄 컨텍스트를 통해 InitialContext를 정의하는 방법이 있습니까?