Я использую EclipseLink и даже я все необходимые банку файлы, импортированные с Maven, я получаю еще исключение:EclipseLinke: Нет файлов ресурсов с именем META-INF/услуги/javax.persistence.spi: Нет PersistenceProvider не были найдены
Исключение в потоке "основного" javax.persistence.PersistenceException: нет ресурсов файлы с именем META-INF/услуги/javax.persistence.spi.PersistenceProvider были найдены. Убедитесь, что файл jar-файла поставщика сохранения находится в вашем пути к классам.
В Maven ПОМ у меня есть зависимость:
<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>
Здесь clathpath в затмении:
Класс, который фактически генерирует исключение:
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 предназначен для автономных приложений. Если я ошибаюсь, возможно, это и есть причина. Мета-Inf помещается в:
Где находится ваш каталог META-INF, расположенный в иерархии проектов? –
Я только что добавил ... извините, я забыл до – Fendrix