【发布时间】:2017-07-13 00:33:14
【问题描述】:
我使用 EclipseLink 作为 JPA 实现。在 Wildfly-10.1.0.Final 中部署时,我总是收到错误 No Persistence provider for EntityManager named <the persistence unit name>。我已按照链接中的步骤操作:
步骤和 module.xml 与我的完全匹配。在 Standalone.xml 中,我已启用上述第一个链接中所述的系统属性
我启用了跟踪日志记录并发现以下内容: [org.hibernate.jpa.HibernatePersistenceProvider](默认任务 4)由于名称不匹配而排除在考虑范围之外
持久性提供者:org.eclipse.persistence.jpa.PersistenceProvider JDK版本:1.8
请求是否有人可以阐明我哪里出错了。
将跟踪添加为
Caused by: javax.persistence.PersistenceException: No Persistence provider for EntityManager named AAAAA_BBBB
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:61)
at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:39)
其他不匹配痕迹
2017-02-23 17:47:09,276 DEBUG [org.hibernate.jpa.HibernatePersistenceProvider] (default task-55) Checking persistence-unit [name=AAAAA_BBBB, explicit-provider=org.eclipse.persistence.jpa.PersistenceProvider] against incoming persistence unit name [AAAAA_BBBB]
2017-02-23 17:47:09,276 DEBUG [org.hibernate.jpa.HibernatePersistenceProvider] (default task-56) Checking persistence-unit [name=AAAAA_BBBB, explicit-provider=org.eclipse.persistence.jpa.PersistenceProvider] against incoming persistence unit name [AAAAA_BBBB]
2017-02-23 17:47:09,277 DEBUG [org.hibernate.jpa.HibernatePersistenceProvider] (default task-56) Excluding from consideration due to name mis-match
其他痕迹
2017-02-24 05:32:49,031 TRACE [org.hibernate.jpa.boot.spi.ProviderChecker](默认任务 7)针对 Hibernate 检查请求的 PersistenceProvider 名称 [org.eclipse.persistence.jpa.PersistenceProvider]提供者名称 2017-02-24 05:32:49,031 调试 [org.hibernate.jpa.HibernatePersistenceProvider](默认任务 11)由于提供者不匹配而排除在考虑范围之外 2017-02-24 05:32:49,031 TRACE [org.hibernate.jpa.boot.spi.ProviderChecker](默认任务 7)与 Hibernate 提供程序名称不匹配
persistence.xml
<persistence-unit name="AAA_BBB" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:/<jndi-Name in standalone</jta-data-source>
<class>...</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="<url>"/>
<property name="javax.persistence.jdbc.user" value="<username>"/>
<property name="javax.persistence.jdbc.password" value="<pwd>"/>
</properties>
</persistence-unit>
<persistence-unit name="CCC_DDD" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jta-data-source>java:/<jndi-Name in standalone</jta-data-source>
<class>...</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="<url>"/>
<property name="javax.persistence.jdbc.user" value="<username>"/>
<property name="javax.persistence.jdbc.password" value="<pwd>"/>
</properties>
</persistence-unit>
【问题讨论】:
-
您从哪里得到异常“没有名为...的 EntityManager 的持久性提供程序”?也许您可以包含一些堆栈跟踪。
-
感谢您的回复。我现在已经在问题本身中添加了堆栈跟踪。更准确地说,我的 entityJar 位于 Wildfly10.1.0Final 的模型目录中。它包含 module.xml 中的 dpendency 以及 entityJars 的 MANIFEST.MF 中提到的 org.eclipse.persistence
-
我正在使用 EclipseLink 2.6.4 和 Java 1.8。它在 TOMCAT 中运行良好。这可能是一个问题,因为我看到 EclipseLink 2.6.x 需要 Java 7,但没有这样的痕迹要求的最小版本是 Java 1.7,所以我希望它也应该与 JDK1.8 一起使用。
-
由于跟踪显示
No Persistence provider for EntityManager named AAAAA_BBBB,请在您的问题中包含持久性单元AAAAA_BBBB。更多信息总是好的:) -
您是否偶然在部署中包含了 eclipselink?
标签: jpa eclipselink wildfly-10