环境:WAS 8.0.0.10 CDI:1.0(实现OpenWebBeans)
用例:服务器通过 TimerManager 异步执行 Java 类。我正在尝试将具有请求范围的 cdi bean 注入到类中,但是当在注入上调用任何方法时,下面是我得到的堆栈跟踪。如果我在注入中使用 Applicationscope 而不是 RequestScope,则代码可以正常工作。
在调查该问题后,我发现请求和会话上下文对于由容器异步初始化的线程将不会处于活动状态。有什么方法可以初始化请求和会话上下文吗?
错误 :
javax.enterprise.context.ContextNotActiveException: WebBeans context with scope type annotation @RequestScoped does not exist within current thread**
at org.apache.webbeans.container.BeanManagerImpl.getContext(BeanManagerImpl.java:358)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.getContextualInstance(NormalScopedBeanInterceptorHandler.java:124)
at org.apache.webbeans.intercept.NormalScopedBeanInterceptorHandler.invoke(NormalScopedBeanInterceptorHandler.java:95)
at com.ford.it.processcontrol.TestJob3_$$_javassist_22.executeJobCB(TestJob3_$$_javassist_22.java)