我正在使用CDI对话范围,并且在用户遵循正常场景时没有问题。但是,当用户没有完成去“谈话”我得到这个错误:当开始被调用两次时,JSF/CDI对话范围中的错误
WELD-000214 Attempt to call begin() on a long-running conversation
显然,是因为有2个呼叫到开始方法,无需调用年底方法。
要澄清,这是我的情景:
- 在第一页中,用户在搜索产品由参考 数。如果发现我打电话给对话。开头并导航到 产品详细信息页面。
- 在这个页面,当用户按压保存按钮 在这一点上,我叫conversation.end。
的问题是在明细页面,用户离开了是时候(例如,点击菜单中的链接),所以年底方法不叫。当他们返回到搜索页面时,我得到错误,因为开始被再次调用。
我认为,当用户存在第二个页面时,一种可能的解决方案可能是调用结束方法。但我不知道如何实现这一点。
(我使用的是JSF 2.1,和焊接1.1.6执行CDI)的提前