Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
Java 没有使用eclipselink命名的EntityManager的持久性提供程序_Java_Eclipse_Maven_Jpa - Fatal编程技术网

Java 没有使用eclipselink命名的EntityManager的持久性提供程序

Java 没有使用eclipselink命名的EntityManager的持久性提供程序,java,eclipse,maven,jpa,Java,Eclipse,Maven,Jpa,我有一个小项目在Eclipse中运行良好。然而,当我将它打包到一个jar中时,它将失败,没有持久性提供程序 我已经尝试过将eclipselink添加为maven依赖项、外部jar文件,以及Eclipse中的正常项目依赖项。我也尝试过使用extract和packagerequired库进行打包,没有任何区别 值得注意的是,Jersey依赖项可以正常工作,并且可以毫无问题地调用服务器。因此,这些依赖项在.jar文件中起作用 The Persistence.xml is located in proj

我有一个小项目在Eclipse中运行良好。然而,当我将它打包到一个jar中时,它将失败,没有持久性提供程序

我已经尝试过将eclipselink添加为maven依赖项、外部jar文件,以及Eclipse中的正常项目依赖项。我也尝试过使用extract和packagerequired库进行打包,没有任何区别

值得注意的是,Jersey依赖项可以正常工作,并且可以毫无问题地调用服务器。因此,这些依赖项在.jar文件中起作用

The Persistence.xml is located in
project/src/META-INF/persistence.xml

I have tried removing one of the persistance-unit without change.

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
    <persistence-unit name="TestMDB" transaction-type="RESOURCE_LOCAL">
        <class>com.sg.db.entity.Result</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:ucanaccess://viking.mdb"/>
            <property name="javax.persistence.jdbc.driver" value="net.ucanaccess.jdbc.UcanaccessDriver"/>
        </properties>
    </persistence-unit>
    <persistence-unit name="TestMDBLive" transaction-type="RESOURCE_LOCAL">
        <class>com.sg.db.entity.Result</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:ucanaccess://c:/Viking2001/DataBas/Viking.mdb"/>
            <property name="javax.persistence.jdbc.driver" value="net.ucanaccess.jdbc.UcanaccessDriver"/>
        </properties>
    </persistence-unit>
</persistence>

请尝试使用打包应用程序


这将确保所有依赖项都正确地放入jar归档文件中

我最初创建了一个正常的项目,我在该项目上使用configure并将其转换为maven项目

我从头开始将该项目重新创建为maven项目,并将资源复制到另一个项目。之后,项目运行正常,eclipselink也包括在内


需要注意的是,persistence.xml应该仍然在src/mail/java/META.INF中,不需要移动它。

如何打包应用程序?作为EclipseTry中的可运行jar,将
org.eclipse.persistence.jpa.PersistenceProvider
放在持久化单元配置中。不做任何更改。还是相同的错误消息。是否需要配置MANIFEST.MF以指向persistence.xml?部署的jar文件中的
persistence.xml
在哪里?它应该位于
/META-INF/persistence.xml
。如果您将它放在
project/src/META-INF
下,那么它可能放错了结果jar中的位置。尝试过它,但最终不会打包pom.xml中的外部jar。如何启动程序集插件?在提示符下使用mvn包,输出中不会出现错误。配置插件后,您应该按如下方式运行它:mvn清洁组件:单个。更多信息请点击此处:
<dependency>
 <groupId>ucanaccess</groupId>
 <artifactId>ucanaccess</artifactId>
 <scope>system</scope>
 <version>3.0.1</version>
 <systemPath>${project.basedir}/lib/ucanaccess-3.0.1.jar</systemPath>
</dependency>


No Persistence provider for EntityManager named TestMDBLive
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:85)
    at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54)
public void init() {

        //Setup database connection
        try {
            factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
            em = factory.createEntityManager();

        } catch (Exception ex) {
            ex.printStackTrace();       }

    }