Mehrere Persistence Units unter Glassfish

musiKk

Top Contributor
Hi,

ich habe folgendes Problem: Wenn ich mehr als eine Persistence Unit in einer persistence.xml definiere, wird keine von beiden mehr erkannt.
Ich hatte schon eine definiert und die hat auch wunderbar funktioniert. Jetzt soll eine zweite dazu und beim Deploy erhalte ich für die erste nun folgende Exception:
Code:
com.sun.enterprise.deployment.backend.IASDeploymentException: Could not resolve a persistence unit corresponding to the persistence-context-ref-name [Foo] in the scope of the module called [WebEAR#/ein/pfad/WebBeans_jar]. Please verify your application.
	at com.sun.enterprise.deployment.BundleDescriptor.findReferencedPUsViaPCRefs(BundleDescriptor.java:737)
	at com.sun.enterprise.deployment.EjbBundleDescriptor.findReferencedPUs(EjbBundleDescriptor.java:884)
	at com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.getAllPersistenceUnitDescriptors(PersistenceProcessor.java:208)
	at com.sun.jdo.spi.persistence.support.ejb.ejbc.PersistenceProcessor.processApplication(PersistenceProcessor.java:175)
	at com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.processApplication(DeploymentEventListenerImpl.java:211)
	at com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.processEvent(DeploymentEventListenerImpl.java:172)
	at com.sun.jdo.spi.persistence.support.ejb.ejbc.DeploymentEventListenerImpl.notifyDeploymentEvent(DeploymentEventListenerImpl.java:122)
	at com.sun.enterprise.deployment.backend.DeploymentEventManager.notifyDeploymentEvent(DeploymentEventManager.java:79)
	at com.sun.enterprise.deployment.backend.AppDeployer.postDeploy(AppDeployer.java:401)
	at com.sun.enterprise.deployment.backend.AppDeployer.deploy(AppDeployer.java:260)
	at com.sun.enterprise.deployment.backend.AppDeployer.doRequestFinish(AppDeployer.java:148)
	at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:208)
	at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:108)
	at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:966)
	at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:283)
	at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:835)
	at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:187)
	at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:225)
Definiert sind sie
Code:
<?xml version="1.0" encoding="UTF-8"?>
<persistence 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"
	version="1.0">
	
	<persistence-unit name="Foo" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>jdbc/foo</jta-data-source>
	</persistence-unit>
	
	<persistence-unit name="Bar" transaction-type="JTA">
		<provider>org.hibernate.ejb.HibernatePersistence</provider>
		<jta-data-source>jdbc/bar</jta-data-source>
	</persistence-unit>
	
</persistence>
Im Netz gibt es das Problem ab und zu, aber dort wird immer mit Spring gearbeitet. Ich verwende kein Spring.

Ich hoffe, jemand hat eine Idee, wie man den Fehler beheben könnte.

Gruß
mK
 
G

gman

Gast
Hi,

ich habe bei mir als Version 2.0 für die Persistence-Datei, also:

Code:
<persistence version="2.0" ....

Der Rest sieht so aus, als ob er funktionieren sollte.
 

musiKk

Top Contributor
Achso, sorry, das hat sich inzwischen erledigt. Ich habe die Annotation falsch verwendet. Ich hatte [c]@PersistenceContext(name = "Foo")[/c]. Richtig ist aber [c]@PersistenceContext(unitName = "Foo")[/c]. Trotzdem danke.
 

Ähnliche Java Themen


Oben