焊接普通作用域 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.
我正在使用 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.