2016-08-08 57 views
1

Verwendung WeldJUnit4Runner hat und die Fehlermeldung zu erhalten:WELD-00143 Pseudo scoped bean zirkuläre Abhängigkeiten

Exception 0: org.jboss.weld.exceptions.DeploymentException: WELD-001.443: Pseudo scoped bean zirkuläre Abhängigkeiten hat. Dependency Pfad: - Managed Bean [Klasse com.my.own.bounded_contexts.client.cache.cacheClientCommPriorizedAcceptRequestService] mit Qualifier [@Any @Default],

Jede bekannte Lösung für dieses Problem in Weld?

Weitere Fehlermeldung: java.lang.ExceptionInInitializerError bei com.my.own.WeldJUnit4Runner.createTest (WeldJUnit4Runner.java:18) bei org.junit.runners.BlockJUnit4ClassRunner $ 1.runReflectiveCall (BlockJUnit4ClassRunner.java: 244) bei org.junit.internal.runners.model.ReflectiveCallable.run (ReflectiveCallable.java:12) bei org.junit.runners.BlockJUnit4ClassRunner.methodBlock (BlockJUnit4ClassRunner.java:241) bei org.junit.runners. BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:70) bei org.junit.runners.BlockJUnit4ClassRunner.runChild (BlockJUnit4ClassRunner.java:50) bei org.junit.runners.ParentRunner $ 3.run (ParentRunner.java:238) bei org.junit.runners.ParentRunner $ 1.schedule (ParentRunner.java:63) bei org.junit.runners.ParentRunner.runChildren (ParentRunner .java: 236) bei org.junit.runners.ParentRunner.access $ 000 (ParentRunner.java:53) bei org.junit.runners.ParentRunner $ 2.Bewertung (ParentRunner.java:229) bei org.junit.runners .ParentRunner.run (ParentRunner.java:309) bei org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run (JUnit4TestReference.java:86) bei org.eclipse.jdt.internal.junit.runner.TestExecution .run (TestExecution.java:38) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:459) bei org.ecl ipse.jdt.internal.junit.runner.RemoteTestRunner.runTests (RemoteTestRunner.java:675) bei org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run (RemoteTestRunner.java:382) bei org.eclipse. jdt.internal.junit.runner.RemoteTestRunner.main (RemoteTestRunner.java:192) Verursacht von: org.jboss.weld.exceptions.DeploymentException: Ausnahme Liste mit 102 Ausnahmen: Ausnahme 0: org.jboss.weld.exceptions .DeploymentException: WELD-001443: Pseudo bereichsbasierte Bean hat zirkuläre Abhängigkeiten. Abhängigkeitspfad: - Managed Bean [Klasse com.my.own.bounded_contexts.client.cache.CacheClientCommPriorizedAcceptRequestService] mit Qualifiern [@Any @Default], - [BackedAnnotatedField] @Inject private com.my.own.bounded_contexts.client .cache.cacheClientCommPriorizedAcceptRequestService.listener, - Managed Bean [Klasse com.my.own.bounded_contexts.client.cache.cacheClientCommPriorizedAcceptRequestListener] mit Qualifier [@Any @Default], - [BackedAnnotatedField] @Inject privaten com.my.own .bounded_contexts.client.cache.CacheClientCommPriorizedAcceptRequestListener.clientCommPriorizedAcceptRequestRepository, - Managed Bean [Klasse com.my.own.bounded_contexts.client.repositories.ClientCommPriorizedAcceptRequestRepository] mit Qualifier s [@Any @Default], - [BackedAnnotatedField] @Inject @ClientCommPriorizedAcceptRequestCache privat com.my.own.bounded_contexts.client.repositories.ClientCommPriorizedAcceptRequestRepository.clientCallPriorizedAcceptRequestCache, - Producer-Methode [RemoteCache] mit Qualifier [@ClientCommPriorizedAcceptRequestCache @Any] deklariert als [[BackedAnnotatedMethod] @Produces @ClientCommPriorizedAcceptRequestCache öffentliche com.my.own.bounded_contexts.client.cache.cacheClientCommPriorizedAcceptRequestService.getClientCommPriorizedAcceptRequestRemoteCache()] , - Managed Bean [Klasse com.my.own.bounded_contexts.client.cache.cacheClientCommPriorizedAcceptRequestService] mit Qualifier [@Any @Default] bei org.jboss.weld.bootstrap.Validator.reallyValidatePseudoScopedBean (Validator.java:897)

Antwort

3

Weld entspricht der Spezifikation in dieser Hinsicht.

Vom CDI spec, Abschnitt 5:

Der Behälter ist erforderlich Zirkularitäten in den Bohne Abhängigkeitsgraphen zu unterstützen, wobei mindestens eine Bohne in jeder kreisförmigen Kette von Abhängigkeiten zwischen Teilnehmern einen normalen Umfang hat, wie definiert in Normale Bereiche und Pseudo-Bereiche. Der Container wird nicht benötigt, um Kreisketten von Abhängigkeiten zu unterstützen, wo jede Bean, die in der Kette beteiligt, einen Pseudobereich hat.

Versuchen Sie, den Abhängigkeitszyklus in Ihrer Anwendung loszuwerden, oder geben Sie einer der beteiligten Beans zumindest einen normalen Bereich.