焊接普通作用域 bean 的循环依赖

Weld Circular Dependency of normal scoped beans

我正在使用 JBoss EAP 6.4(和 Weld 1.1.28)并试图摆脱 Seam 2。其中一部分是切换到 CDI。我收到以下(匿名)错误:

org.jboss.weld.exceptions.DeploymentException: WELD-001443 Pseudo scoped bean
has circular dependencies. Dependency path
[Managed Bean [A] with qualifiers [@Default @Any @Named],
 Managed Bean [B] with qualifiers [@Default @Any],
 Managed Bean [C] with qualifiers [@Default @Any],
 Managed Bean [D] with qualifiers [@Default @Any],
 Managed Bean [C] with qualifiers [@Default @Any]]

然而,其中的每一个都是 @SessionScoped,所以看起来这应该有效,因为 @SessionScoped 是一个 "normal" 范围。为什么这不起作用?

@SessionScoped 对于 CDI 是 javax.enterprise.context.SessionScoped。如果您碰巧用 javax.faces.bean.SessionScoped 注释 class,那么您的 class 不受 CDI 管理。当您尝试 @Inject 时,它将是 @Dependent pseudo-scoped.