Отсутствует поставщик сохраняемости для EntityManager с именем ws-persist - PullRequest
1 голос
/ 11 ноября 2011

Я создаю веб-сервис JAX-RS (Джерси) и сейчас пытаюсь начать использовать JPA. Я выбрал eclipselink для управления этим постоянством.

Для начала я пишу несколько тестовых примеров для junit, пока не пойму, как все сойдет.

В моем файле persistence.xml (WEB-INF / persistence.xml) у меня есть:

<?xml version="1.0" encoding="UTF-8" ?>
<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"
version="2.0" xmlns="http://java.sun.com/xml/ns/persistence">
<persistence-unit name="ws-persist" transaction-type="RESOURCE_LOCAL">
    <class>beans.Change</class>
    <properties>
        <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" />
        <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3333/tomcat" />
        <property name="javax.persistence.jdbc.user" value="tomcat" />
        <property name="javax.persistence.jdbc.password" value="...." />
        <property name="eclipselink.ddl-generation" value="create-tables" />
        <property name="eclipselink.ddl-generation.output-mode" value="database" />
    </properties>
</persistence-unit>

В моем тестовом классе у меня есть.

public class PersistenceTests {

private EntityManager em = null;

@Before
public void setUp() throws Exception {      
    Properties propertiesMap = new Properties();
    propertiesMap.put(PersistenceUnitProperties.DDL_GENERATION, PersistenceUnitProperties.DROP_AND_CREATE);

    EntityManagerFactory  factory = Persistence.createEntityManagerFactory("ws-persist", propertiesMap);
    em = factory.createEntityManager();
}

@After
public void tearDown() throws Exception {
}

@Test
public void testSetUp(){
    Assert.assertNotNull("Entity manager was null", em);
    Assert.assertTrue("Entity manager wasn't connected", em.isOpen());
}
}

У меня есть eclipselink.jar и два javax.persistence _ *. Jar в моей папке WEB-INF / lib. Я получаю исключение, упомянутое в заголовке, может кто-нибудь помочь мне разобраться, как это исправить?

Спасибо.

1 Ответ

1 голос
/ 11 ноября 2011

Я бы попытался добавить поставщика постоянства в файл persistence.xml

<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>

( edit ) или перемещение файла persistence.xml в папку META-INF. Для веб-приложения это должно быть в WEB-INF/classes

...