Multiple persistence units
marvinsouza Jan 7, 2014 2:01 PMI have my project in the following structure:
-- jboss-ear
--- jboss-ejb1
---- META-INF
----- persistence.xml (jboss-pu1)
--- jboss-ejb2
---- META-INF
----- persistence.xml (jboss-pu2)
In both modules (jboss-ejb1 and jboss-ejb2), I have SessionBeans with a field 'EntityManager em' annotated with Question regarding application of @PersistenceContext (CMP) ponting to the respectives persistence-units, configured with 'unitName' property of PersistenceContext annotation.
When I deploy the jboss-ear.jar, in WildFly CR1, the following error appears:
16:52:04,213 ERROR [org.jboss.as.controller.management-operation] (DeploymentScanner-threads - 2) JBAS014613: Operation ("full-replace-deployment") failed - address: ([]) - failure description: {"JBAS014771: Services with missing/unavailable dependencies" => [ "jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean.InstanceName is missing [jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean]", "jboss.deployment.subunit.\"jboss-ear-1.0-SNAPSHOT.ear\".\"jboss-ejb2-1.0-SNAPSHOT.jar\".weld.weldClassIntrospector is missing [jboss.deployment.subunit.\"jboss-ear-1.0-SNAPSHOT.ear\".\"jboss-ejb2-1.0-SNAPSHOT.jar\".beanmanager]", "jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean.ORB is missing [jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean]", "jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean.ValidatorFactory is missing [jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean]", "jboss.deployment.unit.\"jboss-ear-1.0-SNAPSHOT.ear\".WeldStartService is missing [jboss.persistenceunit.\"jboss-ear-1.0-SNAPSHOT.ear/jboss-ejb2-1.0-SNAPSHOT.jar#jboss-pu2\"]", "jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean.InAppClientContainer is missing [jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean]", "jboss.deployment.unit.\"jboss-ear-1.0-SNAPSHOT.ear\".deploymentCompleteService is missing [jboss.deployment.subunit.\"jboss-ear-1.0-SNAPSHOT.ear\".\"jboss-ejb2-1.0-SNAPSHOT.jar\".deploymentCompleteService]", "jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean.Validator is missing [jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean]", "jboss.deployment.subunit.\"jboss-ear-1.0-SNAPSHOT.ear\".\"jboss-ejb1-1.0-SNAPSHOT.jar\".component.MyServiceBean.START is missing [jboss.persistenceunit.\"jboss-ear-1.0-SNAPSHOT.ear/jboss-ejb2-1.0-SNAPSHOT.jar#jboss-pu2\"]", "jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean.HandleDelegate is missing [jboss.naming.context.java.comp.\"jboss-ear-1.0-SNAPSHOT\".\"jboss-ejb2-1.0-SNAPSHOT\".MyAnotherServiceBean]" ]}
It seems to me that the container wants to create the beans of the second module (jboss-ejb2) without initialize the second persistence unit, on which it depends.
If I don't package the second persistence-unit, the application is normally deployed, although I don't had examinated if the some persistence unit was injected.
Where is the problem? I cannot to have 2 ejb-modules inside a ear file?