2010-05-03 52 views
1

我很努力設置使用JPA/Hibernate連接Java程序到MySQL。如何爲DataStore設置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

請更具體地瞭解您的環境。你是獨立運行嗎?在一個Servlet容器中?哪一個 ? – 2010-05-03 16:00:46

回答

0

A jndi.properties文件應位於類路徑的根目錄,並且通常包含JNDI服務器的URL和要使用的初始上下文工廠。例如,與JBoss:

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

但是,當使用Hibernate時,你實際上應該聲明在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」的值? – 2010-05-03 16:34:19

+0

@FarmBoy它們取決於你的應用服務器及其配置。你在使用什麼應用服務器? – 2010-05-03 16:48:00

+0

我目前正在將其作爲獨立應用程序運行。 – 2010-05-03 17:01:50

相關問題