2016-09-25 3 views
2
xyz`

Dies ist die (unten) Fehler aus dem Stack-Trace:Würde Bereitstellung `` EntityManagerFactory` kann nicht lösen EntityManagerFactory abrufen für unitname

Caused by: java.lang.IllegalStateException: Unable to retrieve EntityManagerFactory for unitName null 
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.init(EntityManagerWrapper.java:138) 
at com.sun.enterprise.container.common.impl.EntityManagerWrapper._getDelegate(EntityManagerWrapper.java:171) 
at com.sun.enterprise.container.common.impl.EntityManagerWrapper.createQuery(EntityManagerWrapper.java:477) 
... 

Der Code wird wie folgt (von einem @BalusC ‚s Beispiel inspiriert ich habe bei SO heute):

@Stateless 
public class GradService { 

    @PersistenceContext 
    private EntityManager em; 

    public List<Grad> listAll() { 
     return em.createQuery("SELECT g FROM Grad g", Grad.class).getResultList(); 
    } 
} 

Als Referenz, das ist mein persistence.xml (Webmodul-root: Konfigurationsdateien: WEB-INF META-INF: persistence.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="MojaPU" transaction-type="JTA"> 
     <provider>org.hibernate.ejb.HibernatePersistence</provider> 
     <jta-data-source>jdbc/ekstraResource</jta-data-source> 
     <exclude-unlisted-classes>false</exclude-unlisted-classes> 
     <properties> 
      <property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect"/> 
      <property name="hibernate.hbm2ddl.auto" value="update"/> 
      <property name="hibernate.show_sql" value="true"/> 
      <property name="hibernate.format_sql" value="true"/> 
     </properties> 
    </persistence-unit> 
</persistence> 
+0

Ich habe gerade gelesen, dass der 'Kontext' eigentlich Informationen in der' persistence.xml' enthält, aus der der 'Persistenzmanager' erstellt wurde (also denke ich, dass es nicht nötig ist, es in der Datei selbst zu deklarieren) muss noch geklärt werden, was mit meiner "persistence.xml" dann nicht stimmt? – developer10

+0

@BalusC Ich dachte nur, dass Sie vielleicht einen Blick darauf werfen könnten, da dies auf einem Beispiel von Ihnen basiert (nicht sicher, ob es auch Hibernated verwendet hat) ...) – developer10

+0

Hast du es mit '@PersistenceContext (unitName =" MojaPU ") probiert?" –

Antwort

1

Es scheint, dass Sie Ihre persistence.xml-Datei an falscher Stelle platziert haben. Es sollte sich im Ordner/META-INF/befinden und nicht in WEB-INF.

+0

Eigentlich habe ich beim Verfassen des Posts einen Fehler gemacht. Es ist in META-INF 'Ordner tatsächlich. – developer10

Verwandte Themen