2009-03-18 3 views
3

hibernate.cfg.xml 파일에 SessionFactory의 JNDI 이름을 설정하는 방법이있다. 그러나 명시 적으로 JNDI 조회를 사용하여 내 웹 응용 프로그램에서 내 SessionFactory를 가져 오지 않으면 JNDI 이름을 지정하지 않아도됩니까?최대 절전 모드 : SessionFactory를 JNDI 이름에 바인딩하지 않아도됩니까?

내가 묻는 이유는 내 JNDI 이름을 설정하지 않으면 JUnit 테스트가 정상적으로 실행된다는 것입니다.

WARN [WebApp:SessionFactoryObjectFactory.addInstance] Could not bind factory to JNDI 

을하고, 예외가 던져 : : 만 hibernate.cfg.xml 내에서 SessionFactory를 태그에 '이름'을 지정하여 그것을 설정하는 경우에, 먼저 말할 것이다 그래서

javax.naming.NoInitialContextException:Need to specify class name in environment or system property, or as an appletparameter, or in an application resource file: 

을 내 주위에 내 hibernate.cfg.xml에서 JNDI 이름을 제거하는 것입니다,하지만 다른 문제를 일으킬 것인가 아닌지 모르겠습니까?

답변

3

대부분의 경우 좋겠지 만 JUnit 테스트에는 다른 hibernate.cfg.xm을 사용할 수도 있습니다.

+0

+1 이것은 내가 한 일입니다. –

+0

이 작업을 어떻게 정확하게 수행합니까? 유닛 테스트에 다른 매핑 파일을 사용하도록 Java에서 어떻게 지정합니까? –

+1

하나의 설정 파일을 포함하도록 클래스 경로를 변경하거나 Configuration.configure ("hibernate-test.cfg.xml")를 사용하여 특정 구성 파일로 Java에서 SessionFactory를 빌드 할 수 있습니다. –

0

구성 파일 에서 값 = "sessionFactory"로 속성 이름을 삭제하면 문제가되지 않습니다.