Hallo,
hänge grad an folgendem Problem: javax.persistence.PersistenceException: No Persistence provider for EntityManager named ...
Also das Projekt in aller kürze ist: Ein Webserviceprojekt welches auf einem Tomcat Server läuft soll Daten per Hibernate aus einer Datenbank (PostgreSQL) auslesen können. Da ich noch nicht richtig vertraut bin mit Hibernate, kann ich mit der Fehlermeldung nichts anfangen. Arbeite mit Eclipse.
hänge grad an folgendem Problem: javax.persistence.PersistenceException: No Persistence provider for EntityManager named ...
Also das Projekt in aller kürze ist: Ein Webserviceprojekt welches auf einem Tomcat Server läuft soll Daten per Hibernate aus einer Datenbank (PostgreSQL) auslesen können. Da ich noch nicht richtig vertraut bin mit Hibernate, kann ich mit der Fehlermeldung nichts anfangen. Arbeite mit Eclipse.
Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
<persistence-unit name="hska"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>de.hska.benutzerverwaltung.db.Adresse</class>
<class>de.hska.benutzerverwaltung.db.Bankverbindung</class>
<class>de.hska.bestellverwaltung.db.BestellPos</class>
<class>de.hska.bestellverwaltung.db.Bestellung</class>
<class>de.hska.benutzerverwaltung.db.Bewertung</class>
<class>de.hska.fahrzeugverwaltung.db.Fahrzeug</class>
<class>de.hska.fahrzeugverwaltung.db.FahrzeugTyp</class>
<class>de.hska.fahrzeugverwaltung.db.GebrFahrzeuge</class>
<class>de.hska.fahrzeugverwaltung.db.GebrauchteVerkauf</class>
<class>de.hska.fahrzeugverwaltung.db.Lieferanten</class>
<class>de.hska.benutzerverwaltung.db.Login</class>
<class>de.hska.fahrzeugverwaltung.db.Marke</class>
<class>de.hska.benutzerverwaltung.db.Kunde</class>
<class>de.hska.bestellverwaltung.db.Versand</class>
<properties>
<!-- PostgreSQL (entfaellt bei Appserver, z.B. JBoss) -->
<property name="hibernate.dialect"
value="org.hibernate.dialect.PostgreSQLDialect" />
<property name="hibernate.connection.url"
value="jdbc:postgresql:autohaus" />
<property name="hibernate.connection.driver_class"
value="org.postgresql.Driver" />
<property name="hibernate.connection.username"
value="postgres" />
<property name="hibernate.connection.password" value="1234" />
<property name="hibernate.default_schema" value="public" />
</properties>
</persistence-unit>
</persistence>
Java:
package de.hska.util;
import static de.hska.util.LogUtil.begin;
import static de.hska.util.LogUtil.end;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import de.hska.bestellverwaltung.BestellverwaltungImpl;
import de.hska.bestellverwaltung.db.BestellverwaltungDao;
import de.hska.bestellverwaltung.db.BestellverwaltungDaoImpl;
import de.hska.benutzerverwaltung.KundenverwaltungImpl;
import de.hska.benutzerverwaltung.db.KundenverwaltungDao;
import de.hska.benutzerverwaltung.db.KundenverwaltungDaoImpl;
import de.hska.fahrzeugverwaltung.FahrzeugverwaltungImpl;
import de.hska.fahrzeugverwaltung.db.FahrzeugverwaltungDao;
import de.hska.fahrzeugverwaltung.db.FahrzeugverwaltungDaoImpl;
public class HskaUtil {
private static final Log LOG = LogFactory.getLog(HskaUtil.class);
private static final boolean DEBUG = LOG.isDebugEnabled();
private static final String PERSISTENCE_UNIT = "hska";
private static EntityManagerFactory emf;
private static EntityManager em;
/**
*/
public static EntityManager getEntityManager() {
if (DEBUG) begin(LOG);
if (em != null) {
if (DEBUG) {
final String logMsg = MessagesUtil.getMessage("log.jpa.em.reused");
end(LOG, logMsg);
}
return em;
}
if (emf == null) {
final String logMsg = MessagesUtil.getMessage("log.jpa.emf.created");
LOG.info(logMsg);
emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT);
}
em = emf.createEntityManager();
if (DEBUG) {
final String logMsg = MessagesUtil.getMessage("log.jpa.em.created");
end(LOG, logMsg);
}
return em;
}
/**
*/
public static void init() {
if (DEBUG) begin(LOG, "In der INIT()");
if (emf == null) {
if (DEBUG) end(LOG, "EMF = NULL");
emf = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT);
if(emf == null)
if (DEBUG) end(LOG, "EMF = IMMER NOCH NULL");
final String logMsg = MessagesUtil.getMessage("log.jpa.emf.created");
LOG.info(logMsg);
}
if (DEBUG) end(LOG);
}
/**
*/
public static void close() {
if (DEBUG) begin(LOG);
if (em != null) {
em.close();
em = null;
}
if (DEBUG) end(LOG);
}
/**
*/
public static void shutdown() {
if (DEBUG) begin(LOG);
close();
if (emf != null) {
emf.close();
emf = null;
}
final String logMsg = MessagesUtil.getMessage("log.jpa.emf.closed");
LOG.info(logMsg);
if (DEBUG) end(LOG);
}
/**
*/
// WARUM RÜCKGABEWERT KUNDENVERWALTUNG (OHNE IMPL?)
public static KundenverwaltungImpl getKundenverwaltung() {
return new KundenverwaltungImpl(); //Impl
}
/**
*/
public static KundenverwaltungDao getKundenverwaltungDao() {
return new KundenverwaltungDaoImpl();
}
/**
*/
public static BestellverwaltungImpl getBestellverwaltung() {
return new BestellverwaltungImpl(); //Impl
}
/**
*/
public static BestellverwaltungDao getBestellverwaltungDao() {
return new BestellverwaltungDaoImpl();
}
public static FahrzeugverwaltungImpl getFahrzeugverwaltung() {
return new FahrzeugverwaltungImpl(); //Impl
}
public static FahrzeugverwaltungDao getFahrzeugverwaltungDao() {
return new FahrzeugverwaltungDaoImpl();
}
}
Code:
HTTP Status 500 -
--------------------------------------------------------------------------------
type Exception report
message
description The server encountered an internal error () that prevented it from fulfilling this request.
exception
javax.persistence.PersistenceException: No Persistence provider for EntityManager named hska
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:56)
javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:34)
de.hska.util.HskaUtil.getEntityManager(HskaUtil.java:48)
de.hska.fahrzeugverwaltung.FahrzeugverwaltungImpl.findFahrzeug(FahrzeugverwaltungImpl.java:159)
de.hska.fahrzeugverwaltung.rest.FahrzeugverwaltungResource.findFahrzeug(FahrzeugverwaltungResource.java:49)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
com.sun.jersey.impl.model.method.dispatch.EntityParamDispatchProvider$TypeOutInvoker._dispatch(EntityParamDispatchProvider.java:131)
com.sun.jersey.impl.model.method.dispatch.ResourceJavaMethodDispatcher.dispatch(ResourceJavaMethodDispatcher.java:80)
com.sun.jersey.impl.uri.rules.HttpMethodRule.accept(HttpMethodRule.java:133)
com.sun.jersey.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
com.sun.jersey.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:71)
com.sun.jersey.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:111)
com.sun.jersey.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:64)
com.sun.jersey.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:616)
com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:180)
javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.16 logs.
--------------------------------------------------------------------------------
Apache Tomcat/6.0.16