如何在 Weld 中检索所有现有的长时间运行的对话



我正在用 JBoss 7.1.1.Final、Weld、Seam 3 编写应用程序。我有以下豆子:

@ConversationScoped
public class ConversationBean implements Serializable {
   @Inject
   Conversation conversation;
   private Article article;
...
}

现在,用户可以创建多个对话,每个对话将与 ConversationBean 的实例相关联。我需要能够获取与长时间运行的对话关联的所有实例。

我需要访问它们的原因是,如果用户多次打开一篇文章(因此他将与同一篇文章创建多个对话)。如果他在一个对话中更改了文章,我希望能够在其他对话中刷新文章。

有没有一些标准的方法可以做到这一点?

编辑:"文章"实例由实体管理器查找,并在对话中进行管理。实体管理器是使用Seam托管持久性上下文检索的。

请参阅 http://docs.jboss.org/weld/reference/latest/en-US/html/contexts.html

@Inject @Http private HttpConversationContext conversationContext;
[...]    
     conversationContext.getConversations()

每个会话只有一个对话正在进行。注入对话将为您提供一个长时间运行的对话(或临时对话,如果尚未推广)。

最新更新