EJB服务中的作用域没有活动上下文

时间:2013-05-12 12:48:20

标签: java jsf ejb cdi seam3

我有EJB bean,当我调用更新DB中的用户状态的方法时,有一个类RemoveInactiveUsersTask扩展TimerTask。

这是我班级的示例代码:

@Singleton
@Named
@ApplicationScoped
public class UsersStatusManager implements Serializable {

@SuppressWarnings("CdiInjectionPointsInspection")
    @Inject
    private EntityManager entityManager;

...


}

这是我的错误:

Exception in thread "Timer-2" javax.ejb.EJBException: org.jboss.weld.context.ContextNotActiveException: WELD-001303 No active contexts for scope type javax.enterprise.context.RequestScoped

我将JSF与CDI和Seam 3一起使用。 方法当然是使用@Transactional进行注释,一切正常,直到我在计时器中使用它。 我尝试使用非托管的EntityManager,但后来我需要事务处理异常。

我有什么想法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:4)

异常是正确的,这里没有活动的请求上下文。你应该尝试较低的范围;例如依赖