java - EJB 服务中没有作用域的 Activity 上下文

标签 java jsf ejb cdi seam3

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

这是我类(class)的示例代码:

@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,但后来我遇到了需要事务的异常。

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

最佳答案

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

关于java - EJB 服务中没有作用域的 Activity 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16507532/

相关文章:

java - 我如何一次只允许一个 session 到 Spring REST Web 服务?

java - 从监听器返回值

java - 由 : java. lang.LinkageError 引起:无法链接 com/---

java - 有没有办法在没有 EAR 的情况下将 EJB 模块与 WAR 打包在一起?

Java -Xnoclassgc

java - 输出JSTL转义?

jsf - 警告 : JSF1091: No mime type detected for shared/variables. 少文件

css - 仅将 CSS 类应用于父级(当前)p :panelGrid

jsf - 我怎样才能使 p :cellEditor conditional in PrimeFaces?

java - 测量在 JTA 应用程序上完成了多少事务