Circular Dependency - Local EJB Lookups
Hi all,
In My Enterprise Application I have two EJBs with Local Interafaces.Both the beans are packaged within same EAR.
For some functional reason both the beans are dependent on each other i.e. circular dependency.
While deployment It shows me following error:
Error loading deployment descriptors for dsaaldon -- Cannot resolve reference Unresolved Ejb-Ref ejb/CBOControllerLocalHome@jndi: @com.bt.nhs.spine.dsa.controller.CBOControllerLocalHome@com.bt.nhs.spine.dsa.controller.CBOControllerLocal@Session@null
at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:325)
at com.sun.enterprise.deployment.backend.AppDeployer.deploy(AppDeployer.java:164)
at com.sun.enterprise.deployment.backend.AppDeployer.doRequestFinish(AppDeployer.java:107)
at com.sun.enterprise.deployment.phasing.J2EECPhase.runPhase(J2EECPhase.java:146)
at com.sun.enterprise.deployment.phasing.DeploymentPhase.executePhase(DeploymentPhase.java:71)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.executePhases(PEDeploymentService.java:633)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:188)
at com.sun.enterprise.deployment.phasing.PEDeploymentService.deploy(PEDeploymentService.java:520)
at com.sun.enterprise.management.deploy.DeployThread.deploy(DeployThread.java:143)
at com.sun.enterprise.management.deploy.DeployThread.run(DeployThread.java:172)
Caused by: java.lang.RuntimeException: Cannot resolve reference Unresolved Ejb-Ref ejb/CBOControllerLocalHome@jndi: @com.bt.nhs.spine.dsa.controller.CBOControllerLocalHome@com.bt.nhs.spine.dsa.controller.CBOControllerLocal@Session@null
at com.sun.enterprise.deployment.util.EjbBundleValidator.accept(EjbBundleValidator.java:89)
at com.sun.enterprise.deployment.EjbDescriptor.visit(EjbDescriptor.java:1553)
at com.sun.enterprise.deployment.EjbBundleDescriptor.visit(EjbBundleDescriptor.java:572)
at com.sun.enterprise.deployment.Application.visit(Application.java:1333)
at com.sun.enterprise.deployment.archivist.ApplicationArchivist.validate(ApplicationArchivist.java:406)
at com.sun.enterprise.deployment.backend.Deployer.loadDescriptors(Deployer.java:307)
ejb-jar is as follows :
- <session>
<display-name>CBOControllerLocalHome</display-name>
<ejb-name>CBOControllerLocalHome</ejb-name>
<local-home>com.bt.nhs.spine.dsa.controller.CBOControllerLocalHome</local-home>
<local>com.bt.nhs.spine.dsa.controller.CBOControllerLocal</local>
<ejb-class>com.bt.nhs.spine.dsa.controller.CBOControllerEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
- <ejb-local-ref>
<ejb-ref-name>ejb/JobControllerLocalHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.bt.nhs.spine.dsa.controller.JobControllerLocalHome</local-home>
<local>com.bt.nhs.spine.dsa.controller.JobControllerLocal</local>
</ejb-local-ref>
- <resource-ref>
<res-ref-name>jdbc/DSADS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>
- <session>
<display-name>JobControllerLocalHome</display-name>
<ejb-name>JobControllerLocalHome</ejb-name>
<local-home>com.bt.nhs.spine.dsa.controller.JobControllerLocalHome</local-home>
<local>com.bt.nhs.spine.dsa.controller.JobControllerLocal</local>
<ejb-class>com.bt.nhs.spine.dsa.controller.JobControllerEJB</ejb-class>
<session-type>Stateless</session-type>
<transaction-type>Container</transaction-type>
- <ejb-local-ref>
<ejb-ref-name>ejb/CBOControllerLocalHome</ejb-ref-name>
<ejb-ref-type>Session</ejb-ref-type>
<local-home>com.bt.nhs.spine.dsa.controller.CBOControllerLocalHome</local-home>
<local>com.bt.nhs.spine.dsa.controller.CBOControllerLocal</local>
</ejb-local-ref>
- <resource-ref>
<res-ref-name>jdbc/DSADS</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</session>

