Hi,
I'm trying to create a CMR between two beans that are packaged in separate jarfiles. They have local interfaces. I included identical elements in each bean's ejb-jar.xml file.
I also included an <ejb-local-ref> to the corresponding bean in both beans' ejb-jar.xml files.
(let beans be named A_Bean and B_Bean, with a 1:n relationship)
When I try to deploy the ear, I get the following exception:
17:09:35,431 INFO [EjbModule] Creating
17:09:35,542 INFO [EjbModule] Deploying A_Bean
17:09:35,831 ERROR [EntityContainer] Exception in service lifecyle operation: create
org.jboss.deployment.DeploymentException: Entity: B_Bean not found for: org.jboss.metadata.RelationshipRoleMetaData@5ccfab
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationshipRoleMetaData.(JDBCRelationshipRoleMetaData.java:103)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCRelationMetaData.(JDBCRelationMetaData.java:127)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCApplicationMetaData.(JDBCApplicationMetaData.java:149)
at org.jboss.ejb.plugins.cmp.jdbc.metadata.JDBCXmlFileLoader.load(JDBCXmlFileLoader.java:52)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.loadJDBCEntityMetaData(JDBCStoreManager.java:595)
at org.jboss.ejb.plugins.cmp.jdbc.JDBCStoreManager.create(JDBCStoreManager.java:322)
at org.jboss.ejb.plugins.CMPPersistenceManager.create(CMPPersistenceManager.java:155)
(etc)
(i can add the rest of the stack trace if requested)
I am using the latest (as of 2 hours ago) CVS tree.
The exception will occur with the bean names reversed if the B_Bean deployment is attempted first.
Is this configuration possible, or do I need to package all beans in a CMR in the same jarfile?
Any insights as to where I might be going wrong are much appreciated.
Thanks
Justin
From my reading of the spec you can't; the entities must be in the same ejb-jar. Unless you can find a place in the spec that says that you can do this, it is unlikely to change.