0

@SessionScoped从 Filter 中获取CDI bean相对容易。但是尝试注入@ConversationScopedbean 会引发以下错误:

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

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

可以使用哪种过滤器/拦截机制“足够晚”发生?

4

1 回答 1

0

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

于 2013-09-03T02:35:55.003 回答