2010-05-03 4 views
1

J'ai du mal à mettre en connexion un programme Java à MySQL en utilisant JPA/Hibernate.Comment configurer jndi.properties pour DataStore?

Je reçois actuellement l'erreur suivante lorsque je tente d'appeler 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) 

recherche sur Google semble indiquer que je besoin d'un fichier jndi.properties dans META-INF dans mon classpath, mais je peux » Je ne trouve aucune information sur ce que ce fichier devrait contenir dans mon cas.

Editer: Je suis autonome pour le moment.

+0

être plus spécifique quant à votre environnement. Courez-vous autonome? Dans un conteneur de servlets? laquelle ? –

Répondre

0

Un fichier jndi.properties doit être à la racine du chemin de classe et contient généralement l'URL du serveur JNDI et la fabrique de contexte initiale à utiliser. Par exemple, avec JBoss:

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

Mais, lorsque vous utilisez Hibernate, vous devez déclarer effectivement ces propriétés dans le hibernate.cfg.xml. Par exemple, avec WebLogic:

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

Comment puis-je déterminer les valeurs de "jndi.class" et "jndi.url"? –

+0

@FarmBoy Ils dépendent de votre serveur d'applications et de sa configuration. Quel serveur d'applications utilisez-vous? –

+0

Je l'utilise actuellement en tant qu'application autonome. –