Warum wird die Persistenzeinheit mit null benannt, wenn persistence.xml existiert?

8

Ich verwende Wildfly 8.1 zusammen mit einem EJB-Projekt (EJB 3.2), das Entitäten enthält. Wenn ich versuche, den Entity Manager in eine meiner Bohnen zu injizieren, bekomme ich Folgendes:

%Vor%

Dies ist meine SessionBean, wo ich versuche, den EntityManager zu injizieren:

%Vor%

Ich habe folgende persistence.xml Datei angegeben, die ich in "Projektname" / ejbModule / META-INF lege.

%Vor%

Ähnliche Fragen und ihre Lösungen

Update (siehe Kommentare):
 - Ich habe versucht, stattdessen @EntityManager(unitName="mitarbeiter") zu verwenden    von nur @EntityManager  - Die oben gezeigte Session Bean ist der einzige Ort, an dem ich versuche zu spritzen     EntityManager

Update 2 (siehe Kommentare der Antwort):

  • persistence.xml befindet sich im Verzeichnis Project/ejbModule/META-INF/
  • Dieses Verzeichnis ist im Build-Pfad enthalten
  • Irgendwie wird es nicht bereitgestellt, während andere Dateien im selben Verzeichnis sind (zu jar/META-INF/ ). Wenn ich es manuell kopiere und einfüge, funktioniert es. Warum ist das so?

Jede Hilfe und Hinweise werden sehr geschätzt.

    
Jbartmann 19.10.2015, 14:02
quelle

1 Antwort

6

Ein paar mögliche Probleme:

  • Falscher Speicherort der persistence.xml -Datei. Bitte platzieren Sie es im Verzeichnis META-INF/ im Stammverzeichnis des Archivs. Wenn Sie Maven verwenden, wäre es src/main/resources/META-INF/persistence.xml .
  • Ungültige persistence.xml Datei: Sie haben persistence-unit Tag in der Zeile <persistence-unit name="mitarbeiter"/> geschlossen (beachten Sie / am Ende)
  • <property-name="hibernate.hbm2ddl.auto" value="create-drop"/> ist ungültig. Ich nehme an, du wolltest: <property name="hibernate.hbm2ddl.auto" value="create-drop" />
  • Auch der von Ihnen verwendete Anbieter ist veraltet.

Im Allgemeinen sollte der korrekte persistence.xml Inhalt für JPA 2.1 in Ihrem Fall wie folgt aussehen:

%Vor%     
G. Demecki 19.10.2015, 14:50
quelle

Tags und Links