【发布时间】:2015-02-14 01:50:21
【问题描述】:
我需要防止 JSF 2.2 CDI 对话过期。我尝试实现一种心跳机制,在该机制中,我使用 Ajax 单击一个“隐藏”按钮,该按钮又调用一个 servlet。但对话仍然到期。出于测试目的,我将超时设置为 10 秒,我的代码如下所示。
// The begin conversation method in my managed bean
public void beginConversation() {
if (conversation.isTransient())
{
conversation.setTimeout(10000);
conversation.begin();
}
}
// JQuery document ready function
$(document).ready(function() {
setInterval(function(){$.get("/HeartbeatServlet");}, 5000);
});
// Heartbeat servlet
@WebServlet("/HeartbeatServlet")
public class HeartbeatServlet extends HttpServlet{
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response)
{
System.out.println("Heartbeat Received");
request.getSession();
}
}
它每 5 秒打印一次“Heartbeat Recieved”文本。但对话仍然过期。
【问题讨论】:
标签: cdi jsf-2.2 conversation-scope