2010-05-03 2 views
1

JPA/Hibernate를 사용하여 Java 프로그램을 MySQL에 연결하는 데 어려움을 겪고 있습니다. 내가 전화를 할 때 나는 현재 다음과 같은 오류를 받고 있어요데이터 저장소에 jndi.properties를 설정하는 방법은 무엇입니까?

createEntityManagerFactory() : '

[main] ERROR org.hibernate.connection.DatasourceConnectionProvider - Could not find datasource: java:jdbc/myDataDS 
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 
at javax.naming.spi.NamingManager.getInitialContext(NamingManager.java:645) 
at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java:288) 
at javax.naming.InitialContext.getURLOrDefaultInitCtx(InitialContext.java:325) 
at javax.naming.InitialContext.lookup(InitialContext.java:392) 
at org.hibernate.connection.DatasourceConnectionProvider.configure(DatasourceConnectionProvider.java:75) 

인터넷 검색이 내 클래스 경로에 META-INF에 jndi.properties 파일이 필요하다는 것을 표시하는 것,하지만 내가 할 수있는 그 파일이 내 경우에 무엇을 포함해야하는지에 대한 정보를 찾는 것 같습니다.

편집 : 당분간이 독립 실행 형입니다.

+0

pls를 사용하는 것이 좋습니다. 독립 실행 형입니까? 서블릿 컨테이너에서? 어느 것 ? –

답변

0

jndi.properties 파일은 클래스 경로의 루트에 있어야하며 일반적으로 사용할 JNDI 서버 및 초기 컨텍스트 팩토리의 URL을 포함해야합니다. 보스와 예를 들어 : 최대 절전 모드를 사용하는 경우

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory 
java.naming.provider.url=jnp://localhost:1099 

그러나, 당신은 실제로 hibernate.cfg.xml에서 이러한 속성을 선언해야합니다. 예를 들어, WebLogic의 경우 :

<property name="jndi.class">weblogic.jndi.WLInitialContextFactory</property> 
<property name="jndi.url">t3://127.0.0.1:7001</property> 
+0

"jndi.class"및 "jndi.url"의 값은 어떻게 결정합니까? –

+0

@FarmBoy 귀하의 앱 서버와 그 구성에 따라 다릅니다. 어떤 앱 서버를 사용하고 있습니까? –

+0

현재 독립 실행 형 응용 프로그램으로 실행 중입니다. –

관련 문제