我正在JBoss 7.1.1.Final,Weld,Seam 3中编写应用程序。我有以下bean:
@ConversationScoped
public class ConversationBean implements Serializable {
@Inject
Conversation conversation;
private Article article;
...
}
现在,用户可能会创建多个会话,每个会话都将与ConversationBean的实例相关联。我需要能够获得与长时间运行的对话相关的所有实例。
我需要访问它们的原因是,如果用户多次打开一篇文章(因此他将使用同一篇文章创建多个对话)。如果他在一个对话中更改了文章,我希望能够在其他对话中刷新文章。
有没有一些标准方法可以做到这一点?
编辑:“article”实例由entityManager查找并在会话中进行管理。使用Seam Managed Persistence Context检索实体管理器。
答案 0 :(得分:2)
我似乎明白你想要一个工作区切换器a-la Seam 2。 您可以使用Java EE 6和Weld执行此操作。看看这篇文章:
http://lucasterdev.altervista.org/wordpress/2012/01/09/workspace-management-with-cdi/
答案 1 :(得分:0)
请参阅http://docs.jboss.org/weld/reference/latest/en-US/html/contexts.html
@Inject @Http private HttpConversationContext conversationContext;
[...]
conversationContext.getConversations()
答案 2 :(得分:-1)
每次会话都只进行一次对话。注入会话将为您提供一个长时间运行的对话(如果尚未提升,则为临时对话)。