如何从Filter中获取ConversationScoped CDI bean?

时间:2013-09-02 10:08:04

标签: java cdi servlet-filters conversation-scope

从过滤器中获取@SessionScoped CDI bean是relatively easy。但是尝试注入@ConversationScoped bean会引发以下错误:

org.jboss.weld.context.ContextNotActiveException:
WELD-001303 No active contexts for scope type javax.enterprise.context.ConversationScoped

这与会话当前是否处于活动状态无关。似乎CDI无法确定是否应该使用瞬态或活动对话,因为我的过滤器发生在提供@ConversationScoped bean的上下文之前。

什么样的过滤器/拦截机制可以使用“足够晚”?

1 个答案:

答案 0 :(得分:0)

我不确定其他实现是如何做到这一点的,但至少Weld使用过滤器本身来处理对话,所以你的过滤器需要在过滤器链中的那个之后。