在 Quarkus 服务中找不到 SessionScoped bean
SessionScoped bean not being found in Quarkus service
我有一个使用 cdi
和 resteasy
的 Quarkus 应用程序。我有一个注释为 SessionScoped
的 bean
import javax.enterprise.context.SessionScoped;
@SessionScoped
public class SessionScopedBean implements Serializable {}
当我将这个 bean 注入我的网络资源时,我得到 javax.enterprise.inject.UnsatisfiedResolutionException
:
@Path("/dep")
public class DependencyResource {
private final SessionScopedBean ses;
public DependencyResource(SessionScopedBean ses) {
this.ses = ses;
}
}
堆栈跟踪:
Caused by: javax.enterprise.inject.UnsatisfiedResolutionException:
Unsatisfied dependency for type SessionScopedBean and qualifiers [@Default]
- java member: DependencyResource#<init>()
- declared on CLASS bean [types=[DependencyResource], qualifiers=[@Default, @Any], target=DependencyResource]
at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:472)
at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:404)
at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:212)
如果我将其更改为 ApplicationScoped
或 RequestScoped
,它无需任何其他更改即可工作。
SessionScoped
bean 可以与 Quarkus 1.0.0.CR1 一起使用吗?
在 Quarkus 中,有 SessionContext
但它直接连接到 Undertow
扩展中,而不是请求或应用程序上下文,它们是 Arc (Quarkus DI) 的一部分,您几乎总是将其作为组件获得需要它。
因此,请检查您是否启用了 undertow
扩展程序或尝试手动添加它,看看它是否有帮助。
我有一个使用 cdi
和 resteasy
的 Quarkus 应用程序。我有一个注释为 SessionScoped
import javax.enterprise.context.SessionScoped;
@SessionScoped
public class SessionScopedBean implements Serializable {}
当我将这个 bean 注入我的网络资源时,我得到 javax.enterprise.inject.UnsatisfiedResolutionException
:
@Path("/dep")
public class DependencyResource {
private final SessionScopedBean ses;
public DependencyResource(SessionScopedBean ses) {
this.ses = ses;
}
}
堆栈跟踪:
Caused by: javax.enterprise.inject.UnsatisfiedResolutionException:
Unsatisfied dependency for type SessionScopedBean and qualifiers [@Default]
- java member: DependencyResource#<init>()
- declared on CLASS bean [types=[DependencyResource], qualifiers=[@Default, @Any], target=DependencyResource]
at io.quarkus.arc.processor.Beans.resolveInjectionPoint(Beans.java:472)
at io.quarkus.arc.processor.BeanInfo.init(BeanInfo.java:404)
at io.quarkus.arc.processor.BeanDeployment.init(BeanDeployment.java:212)
如果我将其更改为 ApplicationScoped
或 RequestScoped
,它无需任何其他更改即可工作。
SessionScoped
bean 可以与 Quarkus 1.0.0.CR1 一起使用吗?
在 Quarkus 中,有 SessionContext
但它直接连接到 Undertow
扩展中,而不是请求或应用程序上下文,它们是 Arc (Quarkus DI) 的一部分,您几乎总是将其作为组件获得需要它。
因此,请检查您是否启用了 undertow
扩展程序或尝试手动添加它,看看它是否有帮助。