Как настроить jndi.properties для хранилища данных? - PullRequest
1 голос
/ 03 мая 2010

Я пытаюсь настроить подключение Java-программы к MySQL с помощью JPA / Hibernate.

В настоящее время я получаю следующую ошибку при попытке позвонить 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)

Похоже, поиск в Google указывает, что мне нужен файл jndi.properties в META-INF в моем пути к классам, но я не могу найти какую-либо информацию о том, что этот файл должен содержать в моем случае.

Редактировать: Пока я работаю в автономном режиме.

1 Ответ

0 голосов
/ 03 мая 2010
Файл

A jndi.properties должен находиться в корне пути к классам и обычно содержит URL-адрес сервера JNDI и исходную фабрику контекста для использования. Например, с 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>
...