Od kilku godzin walcze z JPA 2.0 jako dostawca jest Hibernate była wersja 4.1.8 ale teraz na starszą zmieniłem bo sądziłem że ruszy, wszystko siedzi na Tomcat 7.
Dostaje taki błąd
org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider
description The server encountered an internal error (org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider) that prevented it from fulfilling this request.
exception
java.lang.ClassCastException: org.hibernate.ejb.HibernatePersistence cannot be cast to javax.persistence.spi.PersistenceProvider
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:62)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:47)
jee.mw.encje.StudentDAO.<init>(StudentDAO.java:14)
jee.mw.serwlet.index.doGet(index.java:31)
javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
note The full stack trace of the root cause is available in the Apache Tomcat/7.0.29 logs.
plik persistence wygląda tak
<?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="ORM">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>jee.mw.encje.Student</class>
<properties>
<property name="hibernate.connection.username" value="root"/>
<property name="hibernate.connection.password" value="root"/>
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver"/>
<property name="hibernate.connection.url" value="jdbc:mysql://localhost/studenci"/>
<property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider"/>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/>
</properties>
</persistence-unit>
</persistence>
na razie chche tylko nawiazac polaczenie nic wiecej robie to tak
public class StudentDAO {
private EntityManager em;
private static EntityManagerFactory emf;
public StudentDAO() {
emf = Persistence.createEntityManagerFactory("ORM");
em = emf.createEntityManager();
}
}
Nie wiem dlaczego nie działa. Gdzieś czytałem że jeśli chodzi o najnowsza wersje to jakiś bug był z Tomcat 7. Ale kur... jakis miesiąc temu robiłem niemal że tak samo i wszystko działało a teraz pociąć się mogę. Będę niezmiernie wdzięczny ża każdą wskazówkę, która mi pomorze to ogarnąć.