Jakarta ee Glassfish3上的声明式会话管理,JavaEE

Jakarta ee Glassfish3上的声明式会话管理,JavaEE,jakarta-ee,glassfish,cdi,jboss-weld,conversation-scope,Jakarta Ee,Glassfish,Cdi,Jboss Weld,Conversation Scope,我在我的一个应用程序中依赖@ConversationScope EntityManager。 但是,我现在需要从会话外部访问EntityManager(计时器EJB)。 我读了一篇关于如何编写拦截器的教程,如果没有拦截器,它将打开一个新的对话- 现在,当我尝试设置这个示例时,我得到了一个异常,@Bound@injectboundconversationcontext没有目标 老实说,我不知道问题是什么,也不知道我会朝哪个方向看 我当前正在使用: 玻璃鱼3 Java EE 6计时器不能保证在Htt

我在我的一个应用程序中依赖@ConversationScope EntityManager。

但是,我现在需要从会话外部访问EntityManager(计时器EJB)。 我读了一篇关于如何编写拦截器的教程,如果没有拦截器,它将打开一个新的对话-

现在,当我尝试设置这个示例时,我得到了一个异常,@Bound@injectboundconversationcontext没有目标

老实说,我不知道问题是什么,也不知道我会朝哪个方向看

我当前正在使用:
玻璃鱼3

Java EE 6

计时器不能保证在HttpSession中运行,因此没有对话。您最好在计时器bean中使用
@PersistenceContext

我知道没有对话。这就是为什么我想以编程方式开始一个新的对话(将方法调用包装到@Interceptor中),执行EntityManager调用,然后再次结束对话。“我的OP”中的教程链接正是这样做的-但是,对于我的设置不起作用:(在我看来,要为按指定方式工作的东西创建一个解决方案需要做大量的工作。计时器不能在HTTP请求的范围内工作,因此,如果不攻击上述拦截器之类的东西,RequestScoped、ConversationScoped和SessionScoped将无法工作。老实说,您最好只使用@PersistenceCon如果需要,在实体中使用text和merge(),然后正常使用它。