在Quarkus服务中找不到SessionScoped bean

问题描述 投票:0回答:1

我有一个使用cdiresteasy的Quarkus应用程序。我有一个标注为SessionScoped

的bean
import javax.enterprise.context.SessionScoped;
@SessionScoped
public class SessionScopedBean implements Serializable {}

当我将此bean注入Web资源时,我得到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)

如果将其更改为ApplicationScopedRequestScoped,则无需进行其他任何更改即可。

SessionScoped bean是否可以与Quarkus 1.0.0.CR1一起使用?

cdi quarkus
1个回答
2
投票

[在Quarkus中,有SessionContext,但它直接连接到SessionContext扩展名,与作为Arc(Quarkus DI)的一部分的请求或应用程序上下文相反,您几乎总是在组件需要它时就得到它。

因此,请检查您是否已启用Undertow扩展名,或尝试手动添加它,以查看是否有帮助。

© www.soinside.com 2019 - 2024. All rights reserved.