2012-03-29 10 views
0

Ich verwende den JBoss 4.2.3-Anwendungsserver.mehrere EJB-JAR-Dateien in einem EAR mit derselben Persistenz.xml

Ich habe eine EAR, die derzeit 2 EJB (EJB 3) Gläser enthält.

Im EJB-Hauptjar habe ich die Datei persistence.xml mit den Datenquellenkonfigurationen.

aus der sekundären EJB-JAR-Datei, die ich erfolgreich die EntityManager nennen kann und \ Schreibeinheiten lesen, die in der Haupt EJB jar definiert sind, die die persistence.xml

Wenn ich enthält versuchen, eine Einheit in den sekundären zu setzen EJB jar-Modul und dann persistent es über die EntityManager, die die Persistenz-Einheit von der Haupt-EJB verwendet Ich bekomme eine Ausnahme:

verursacht durch: org.hibernate.hql.ast.QuerySyntaxException: [ENTITY-CLASS-NAME] ist nicht kartiert

Die Lösung, die ich gefunden habe, ist, eine weitere persistence.xml in der sekundären EJB mo zu erstellen dule und ändern Sie den Namen der Persistenzeinheit.

Ich bin mir nicht sicher, ob das, was ich versucht habe, richtig ist? Kannst du bitte einen Beitrag dazu leisten, ob ich die selbe persistence.xml mit mehreren EJB-Modulen in der EAR teilen kann (auf eine Art, wie ich Entitäten in beiden EJB-Modulen haben kann)?

Antwort

0

Versetzen Sie die Datei persistence.xml und die Entitäten in eine JAR im lib/Verzeichnis der obersten Ebene der EAR. Dies sollte ermöglichen, dass die Persistenzeinheiten von allen Modulen in der EAR verwendet werden können.

+0

Hallo, Vielen Dank für Ihre Antwort. In diesem Fall werden die Entitäten jedoch weiterhin geteilt. Ich möchte die Entitäten so trennen, dass sie nur für ein bestimmtes EJB-Projekt relevant sind, das ich verwende. –

+0

Was ich getan habe, ist das Hinzufügen von persistence.xml zu dem spezifischen EJB-Projekt. Ich möchte auch die Entitäten sehen können. Dann lasse ich es meistens leer, aber benutze das Tag, um auf meinen anderen EJB zu zeigen, z.B. Andere-ejb.jar

+0

@ T.K. Ich weiß, es ist eine Weile her, aber kannst du deinen Kommentar erläutern? Wäre die ' Other-ejb.jar' in der application.xml als EJB-Modul in diesem Fall oder nur als Java-Modul aufgeführt? – StormeHawke