java - 如何为DataStore设置jndi.properties?

标签 java hibernate jpa datasource jndi

我正在努力使用 JPA/Hibernate 将 Java 程序连接到 MySQL。

当前,当我尝试调用 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 文件,但我似乎找不到有关该文件在我的情况下应包含的内容的任何信息。

编辑:我暂时独立运行这个。

最佳答案

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>

关于java - 如何为DataStore设置jndi.properties?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2759300/

相关文章:

java - 如何使用 Java 创建 Excel 表格?

java - Spring Boot、JPA 和 MySQL 8 方言错误

Hibernate SessionFactory 与 Service Registry

mysql - jpa id生成策略,@id默认是auto,mysql默认是IDENTITY,但是我发现生成了一个hibernate_sequence表,为什么?

java - 如何获得Java 8中两个Stream之间的对称差异?

java - 如何合并两个有序的对象列表?

mysql - HQL NOT 运算符问题

mysql - JPA SQL 从实体管理器中选择和求和

java - JPQL - 使用 SET 中的命名参数更新 NamedQuery

java - 是否有 OSGi 版本的 Guava 源代码(用于 Eclipse)?