gpt4 book ai didi

java - EclipseLinke :No resource files named META-INF/services/javax. persistence.spi:未找到 PersistenceProvider

转载 作者:行者123 更新时间:2023-11-30 09:17:45 26 4
gpt4 key购买 nike

我正在使用 EclipseLink,甚至我已经用 maven 导入了所有必要的 jar 文件,我仍然得到异常:

Exception in thread "main" javax.persistence.PersistenceException: No resource files named META-INF/services/javax.persistence.spi.PersistenceProvider were found. Please make sure that the persistence provider jar file is in your classpath.

在 Maven pom 中我有依赖:

<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0.2</version>
<scope>provided</scope>
</dependency>

这是我的 persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0"
xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="PersistenzJPAProjekt">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>com.testJPABasis.Person</class>

</persistence-unit>
</persistence>

这里是 eclipse 中的 clathpath: enter image description here

实际产生异常的类:

public class TestJPA
{
public static void main(String[] args)
{
Person person = new Person();
person.setPersonID(1);

EntityManagerFactory emf = Persistence.createEntityManagerFactory("PersistenzJPAProjekt");
EntityManager em = emf.createEntityManager();

}
}

persistence.xml 直接在 META-INF 下。据我所知,我不需要 Glassfish 或 Tomcat,因为 EclipseLink 是为独立应用程序制作的。如果我错了,也许这就是原因。 Meta-Inf 放置在:

enter image description here

最佳答案

persistence-api 就是:API(主要是接口(interface))。您仍然需要包括实际的持久性提供者;看起来您需要 EclipseLink。

关于java - EclipseLinke :No resource files named META-INF/services/javax. persistence.spi:未找到 PersistenceProvider,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18815133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com