【发布时间】:2012-07-16 15:06:49
【问题描述】:
我想知道RequestScoped 上下文当前是否在方法中处于活动状态。
目前,这是我的工作:
@Inject private BeanManager beanManager;
public boolean isRequestScopeActive() {
try {
if (beanManager.getContext(RequestScoped.class).isActive()) {
return true;
} else {
return false;
}
} catch (final ContextNotActiveException e) {
return false;
}
}
我认为捕获ContextNotActiveException 只是为了知道范围是否处于活动状态有点繁重。
您有没有更好的方法来了解 CDI 中上下文的状态(活动或非活动)?
【问题讨论】:
-
RequestScoped 应该几乎总是处于活动状态,除非您通过异步事件执行某些操作。你想做什么?
-
是的,我正在尝试检测这一点,因为我可能处于异步事件或预定事件中......请参阅issues.jboss.org/browse/SEAMPERSIST-78
-
在这种情况下,你所拥有的可能是最好的解决方案
标签: java-ee-6 cdi jboss-weld