2015-06-18 3 views
4

У меня проблема с моим динамическим веб-приложением. Я только начал изучать JavaEE 6, и теперь я стою на JPA. Я настроил свое приложение, добавил библиотеки, но я до сих пор получаю эту досадную информацию: нет провайдера Persistence для EntityManager с именем X. Я пытаюсь получить ответ в Интернете, но мне ничего не помогает.Отсутствует поставщик сущности для EntityManager с именем X - JPA

Это мой persistance.xml файл:

<?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="PierwszaAplikacja" transaction-type="RESOURCE_LOCAL"> 
    <provider>org.hibernate.ejb.HibernatePersistence</provider> 
    <class>devcastzone.javaee.Uzytkownik</class> 
    <properties> 
     <property name="hibernate.connection.username" value="root"/> 
     <property name="hibernate.connection.password" value=""/> 
     <property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/> 
     <property name="hibernate.connection.url" value="jdbc:mysql://localhost/szkolenie_javaee?characterEncoding=utf8"/> 
     <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
    </properties> 
</persistence-unit> 

Это мой класс Uzytkownik.java:

import java.io.Serializable; 

import javax.persistence.Entity; 
import javax.persistence.Id; 
import javax.persistence.Table; 

@Entity 
@Table(name="uzytkownik") 
public class Uzytkownik implements Serializable { 

    private static final long serialVersionUID = -3299291830280417103L; 
    @Id 
    private int id; 
    private String imie; 
    private String nazwisko; 

    //getters and setters 
} 

И мой EntityManagerFactory создатель в сервлет:

protected void doGet(HttpServletRequest req, HttpServletResponse res) throws IOException, ServletException 
{ 
    res.setContentType("text/plain;charset=utf-8"); 
    res.getWriter().println("Cos tam cos tam"); 
    EntityManagerFactory emf = Persistence.createEntityManagerFactory("PierwszaAplikacja"); 
    EntityManager em = emf.createEntityManager(); 
    Uzytkownik u = em.find(Uzytkownik.class, 1); 
    res.getWriter().println(u.getImie() + " " + u.getNazwisko() + "\n"); 
    em.close(); 
    emf.close(); 
    } 

Конечно, у меня есть мой persistence.xml в корне в META-INF. Может быть, кто-нибудь может помочь мне в этом вопросе?

ответ

0

Хорошо. У меня была та же проблема на этой неделе.

Попробуйте копию META-INF в java src. (то же место, что и ваши пакеты)

Он решил проблему для меня.

0

Если вы используете файл WAR для развертывания приложения, файл persistence.xml должен находиться в каталоге WEB-INF/classes/META-INF.

0

Изменение поставщика от:

<provider>org.hibernate.ejb.HibernatePersistence</provider> 

к:

<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 
Смежные вопросы