EJB 3.0 circular injection problem
mireksz Mar 16, 2010 4:00 PMHello,
I using jboss 5.0.0 GA (also tryied on jboss 5.1.0.GA)
I have problem with injection. I have two services:
@Local public interface DepatureService { void find(); } @Stateless public class DepatureServiceImpl implements DepatureService { @EJB EmployeeService employeeService; @Override public void find() { } } @Local public interface EmployeeService { public void hire(); } @Stateless public class EmployeeServiceImpl implements EmployeeService { @EJB DepatureService depatureService; @Override public void hire() { } }
When I remove injection for example in EmployeeServiceImple or inDepartmentServiceImpl then works fine. But when I have this circular injection I get the following exception:
20:49:24,968 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@5734641{vfszip:/D:/SPS/jboss-5.0.0.GA/server/default/deploy/testejb.jar} 20:49:24,968 INFO [Ejb3DependenciesDeployer] Encountered deployment AbstractVFSDeploymentContext@5734641{vfszip:/D:/SPS/jboss-5.0.0.GA/server/default/deploy/testejb.jar} 20:49:25,078 INFO [JBossASKernel] Created KernelDeployment for: testejb.jar 20:49:25,078 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=testejb.jar,name=DepatureServiceImpl,service=EJB3 20:49:25,078 INFO [JBossASKernel] with dependencies: 20:49:25,078 INFO [JBossASKernel] and demands: 20:49:25,078 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService 20:49:25,078 INFO [JBossASKernel] jndi:EmployeeServiceImpl/local-pakiet.EmployeeService 20:49:25,078 INFO [JBossASKernel] and supplies: 20:49:25,078 INFO [JBossASKernel] jndi:DepatureServiceImpl/local-pakiet.DepatureService 20:49:25,078 INFO [JBossASKernel] jndi:DepatureServiceImpl/remote 20:49:25,078 INFO [JBossASKernel] Class:pakiet.DepatureService 20:49:25,078 INFO [JBossASKernel] jndi:DepatureServiceImpl/local 20:49:25,078 INFO [JBossASKernel] Added bean(jboss.j2ee:jar=testejb.jar,name=DepatureServiceImpl,service=EJB3) to KernelDeployment of: testejb.jar 20:49:25,093 INFO [JBossASKernel] installing bean: jboss.j2ee:jar=testejb.jar,name=EmployeeServiceImpl,service=EJB3 20:49:25,093 INFO [JBossASKernel] with dependencies: 20:49:25,093 INFO [JBossASKernel] and demands: 20:49:25,093 INFO [JBossASKernel] jboss.ejb:service=EJBTimerService 20:49:25,093 INFO [JBossASKernel] jndi:DepatureServiceImpl/local-pakiet.DepatureService 20:49:25,093 INFO [JBossASKernel] and supplies: 20:49:25,093 INFO [JBossASKernel] Class:pakiet.EmployeeService 20:49:25,093 INFO [JBossASKernel] jndi:EmployeeServiceImpl/local-pakiet.EmployeeService 20:49:25,093 INFO [JBossASKernel] jndi:EmployeeServiceImpl/remote 20:49:25,093 INFO [JBossASKernel] jndi:EmployeeServiceImpl/local 20:49:25,093 INFO [JBossASKernel] Added bean(jboss.j2ee:jar=testejb.jar,name=EmployeeServiceImpl,service=EJB3) to KernelDeployment of: testejb.jar 20:49:25,156 WARN [HDScanner] Failed to process changes org.jboss.deployers.client.spi.IncompleteDeploymentException: Summary of incomplete deployments (SEE PREVIOUS ERRORS FOR DETAILS): *** CONTEXTS MISSING DEPENDENCIES: Name -> Dependency{Required State:Actual State} jboss.j2ee:jar=testejb.jar,name=DepatureServiceImpl,service=EJB3 -> <UNKNOWN jboss.j2ee:jar=testejb.jar,name=DepatureServiceImpl,service=EJB3>{Described:** UNRESOLVED Demands 'jndi:EmployeeServiceImpl/local-pakiet.EmployeeService' **} jboss.j2ee:jar=testejb.jar,name=EmployeeServiceImpl,service=EJB3 -> <UNKNOWN jboss.j2ee:jar=testejb.jar,name=EmployeeServiceImpl,service=EJB3>{Described:** UNRESOLVED Demands 'jndi:DepatureServiceImpl/local-pakiet.DepatureService' **} *** CONTEXTS IN ERROR: Name -> Error <UNKNOWN jboss.j2ee:jar=testejb.jar,name=DepatureServiceImpl,service=EJB3> -> ** UNRESOLVED Demands 'jndi:EmployeeServiceImpl/local-pakiet.EmployeeService' ** <UNKNOWN jboss.j2ee:jar=testejb.jar,name=EmployeeServiceImpl,service=EJB3> -> ** UNRESOLVED Demands 'jndi:DepatureServiceImpl/local-pakiet.DepatureService' ** at org.jboss.deployers.plugins.deployers.DeployersImpl.checkComplete(DeployersImpl.java:863) at org.jboss.deployers.plugins.main.MainDeployerImpl.checkComplete(MainDeployerImpl.java:665) at org.jboss.system.server.profileservice.hotdeploy.HDScanner.scan(HDScanner.java:293) at org.jboss.system.server.profileservice.hotdeploy.HDScanner.run(HDScanner.java:221) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441) at java.util.concurrent.FutureTask$Sync.innerRunAndReset(FutureTask.java:317) at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:150) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$101(ScheduledThreadPoolExecutor.java:98) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.runPeriodic(ScheduledThreadPoolExecutor.java:181) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:205) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:619) How to resolve this problem Best regards