JDev 12 and Java EE CDI



我正在尝试在JDev 12.2.1的ADF应用程序中使用Java EE CDI,但即使有这个简单的情况:

public class ClassA { }
public class ClassB {
    @Inject ClassA injected;
}

它似乎创建了 ClassA Bean 的两个副本,并因不明确的依赖项错误而失败。还有其他人在 JDev 12.2.1 中让 CDI 工作吗?是否有我弄错的项目或网络逻辑设置?

weblogic.management.DeploymentException: CDI deployment failure:WELD-001409: Ambiguous dependencies for type ClassA with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject private ca.bluecross.ab.muw.view.controller.ClassB.injected
  at ca.bluecross.ab.muw.view.controller.ClassB.injected(ClassB.java:0)
  Possible dependencies:
  - Managed Bean [class ca.bluecross.ab.muw.view.controller.ClassA] with qualifiers [@Any @Default],
  - Managed Bean [class ca.bluecross.ab.muw.view.controller.ClassA] with qualifiers [@Any @Default]
:org.jboss.weld.exceptions.DeploymentException:WELD-001409: Ambiguous dependencies for type ClassA with qualifiers @Default
  at injection point [BackedAnnotatedField] @Inject private ca.bluecross.ab.muw.view.controller.ClassB.injected
  at ca.bluecross.ab.muw.view.controller.ClassB.injected(ClassB.java:0)
  Possible dependencies:
  - Managed Bean [class ca.bluecross.ab.muw.view.controller.ClassA] with qualifiers [@Any @Default],
  - Managed Bean [class ca.bluecross.ab.muw.view.controller.ClassA] with qualifiers [@Any @Default]
                at org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:367)
                at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:281)
                at org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:134)
                at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:155)
                at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:518)
                Truncated. see log file for complete stacktrace

类 类 A 有一个默认作用域,它是@Dependent。该豆子将在注入点创建。查看类 A 的 bean 将被创建和注入到何处。具有作用域 @Dependent bean 的销毁取决于将注入它的类的实例。如果您没有这一点,请创建它,或更改此 Bean 的范围。例如,@ApplicationScope并检查它。

最新更新