Wildfly-10.1.0.Final 中的 EclipseLink 配置未反映 PersistenceProvider
EclipseLink Configuration in Wildfly-10.1.0.Final not reflecting the PersistenceProvider
我正在使用 EclipseLink 作为 JPA 实现。在 Wildfly-10.1.0.Final 中部署时,我总是收到错误 No Persistence provider for EntityManager named <the persistence unit name>
。我已按照 link 中的步骤操作:
步骤和 module.xml 完全匹配 mine.In standalone.xml 我已经启用了系统 属性 正如上面提到的第一个 link
我启用了跟踪日志记录,发现以下内容:
[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 DEBUG [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>
终于能够以一种有点奇怪的方式解决问题(可能)
第 1 步:在名称 (com.abc.persistence:main) 下创建了一个模块目录
第2步将eclipselink和jipijapa的相关jar全部复制到同一个模块中并引用。
步骤 2. 删除系统 属性 "eclipselink.archive.factory"
它工作干净。
我分析的是,如果其中一个系统 属性 被放置,那么目标服务器等其他系统将永远不会添加到属性映射中(我在代码中的某处进行了检查)。一旦我删除了,我认为所有其他人也会被添加,因此它可以工作,因为如果在模块中创建上述目录(上面的第 1 步)使它工作,我会感到有点惊讶。
我正在使用 EclipseLink 作为 JPA 实现。在 Wildfly-10.1.0.Final 中部署时,我总是收到错误 No Persistence provider for EntityManager named <the persistence unit name>
。我已按照 link 中的步骤操作:
步骤和 module.xml 完全匹配 mine.In standalone.xml 我已经启用了系统 属性 正如上面提到的第一个 link
我启用了跟踪日志记录,发现以下内容: [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 DEBUG [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>
终于能够以一种有点奇怪的方式解决问题(可能)
第 1 步:在名称 (com.abc.persistence:main) 下创建了一个模块目录 第2步将eclipselink和jipijapa的相关jar全部复制到同一个模块中并引用。
步骤 2. 删除系统 属性 "eclipselink.archive.factory"
它工作干净。
我分析的是,如果其中一个系统 属性 被放置,那么目标服务器等其他系统将永远不会添加到属性映射中(我在代码中的某处进行了检查)。一旦我删除了,我认为所有其他人也会被添加,因此它可以工作,因为如果在模块中创建上述目录(上面的第 1 步)使它工作,我会感到有点惊讶。