Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jpa Wildfly-10.1.0.Final中的EclipseLink配置未反映PersistenceProvider_Jpa_Eclipselink_Wildfly 10 - Fatal编程技术网

Jpa Wildfly-10.1.0.Final中的EclipseLink配置未反映PersistenceProvider

Jpa Wildfly-10.1.0.Final中的EclipseLink配置未反映PersistenceProvider,jpa,eclipselink,wildfly-10,Jpa,Eclipselink,Wildfly 10,我使用EclipseLink作为JPA实现。在Wildfly-10.1.0.Final中部署时,我总是收到错误没有名为的EntityManager的持久性提供程序。我遵循了链接中的步骤: 步骤和module.xml与我的完全匹配 我启用了跟踪日志记录,并发现: [org.hibernate.jpa.HibernatePersistenceProvider](默认任务-4)由于名称不匹配而不考虑 持久性提供者:org.eclipse.Persistence.jpa.PersistencePro

我使用EclipseLink作为JPA实现。在Wildfly-10.1.0.Final中部署时,我总是收到错误
没有名为
的EntityManager的持久性提供程序。我遵循了链接中的步骤:

  • 步骤和module.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:49031跟踪[org.hibernate.jpa.boot.spi.ProviderChecker](默认任务7)根据hibernate提供程序名称检查请求的PersistenceProvider名称[org.eclipse.persistence.jpa.PersistenceProvider] 2017-02-24 05:32:49031调试[org.hibernate.jpa.HibernatePersistenceProvider](默认任务-11)由于提供程序不匹配而不考虑 2017-02-24 05:32:49031跟踪[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>
    
    
    org.eclipse.persistence.jpa.PersistenceProvider
    爪哇:/
    org.eclipse.persistence.jpa.PersistenceProvider
    爪哇:/
    
    最终以一种有点奇怪的方式解决了这个问题(可能)

    步骤1:以名称(com.abc.persistence:main)创建模块目录 步骤2将eclipselink和jipijapa的所有相关JAR复制到同一个模块中,并将其引用

    第二步。删除了系统属性“eclipselink.archive.factory”

    它工作得很干净


    我分析的是,如果放置了一个系统属性,那么像目标服务器这样的其他属性永远不会添加到属性映射中(我在代码中的某个地方进行了检查)。一旦我删除了,我想所有其他的也会被添加,因此它会工作,因为如果在模块中创建上面的目录(上面的步骤1)使它工作,我将不会感到惊讶。

    哪里会出现异常“EntityManager没有名为的持久性提供程序…”?也许你可以包括一些堆栈跟踪。谢谢你的回复。现在我已经在问题本身中添加了堆栈跟踪。更准确地说,我的entityJar位于Wildfly10.1.0Final的modeules目录中。它包含module.xml中的dpendency以及org.eclipse.persistence,使用EclipseLink 2.6.4和Java 1.8的entityJarsI am的MANIFEST.MF中提到了它。在TOMCAT中运行良好。这可能是一个问题,因为我看到EclipseLink 2.6.x需要Java 7,但是没有跟踪,因为所需的minium版本是Java 1.7,所以我希望它也可以与JDK1.8一起使用。因为跟踪显示没有名为AAAA_BBBBBB的EntityManager的持久性提供程序,请在您的问题中包括持久性单元AAAAA _BBBBBB。更多信息总是好的:)你是不是碰巧在你的部署中包括了eclipselink?请问你所说的“并引用它”到底是什么意思?你到底是怎么做到的?你能用你的工作配置的细节编辑你的答案吗?提前谢谢。你好@SayoOladeji,很抱歉回复晚了。对于问题的第一点,“并引用它”意味着我从module.xml引用了它。在standalone.xml中,我删除了系统属性“eclipselink.archive.factory”