将tomcat会话超时与已部署的应用程序同步

时间:2012-10-11 13:02:45

标签: tomcat web-applications deployment liferay session-timeout

我已在tomcat / webapps中部署了一个外部应用程序(使用html页面访问),并尝试将其与Liferay会话同步。问题是超时不同步(使用web.xml中的session-timeout属性指定),访问此页面时的任何活动都不会向Liferay注册(因此,超时不会重置,所以我总是计时在session-timeout属性中指定的时间之后输出,默认为60分钟)。

我试图在我的html页面中显式调用Liferay.Session.extend(),并且firebug显示POST调用以扩展会话,但Liferay似乎仍然没有识别它。

非常感谢任何想法。

感谢

1 个答案:

答案 0 :(得分:1)

当您在liferay中处理应用程序时,这意味着您正在处理一个portlet,除非您移动到另一个portlet,否则不会重置liferay会话。所以一旦完成60分钟,你将自动超时。

无论你在portlet中做什么,它都是一个ajax调用w.r.t Liferay,所以解决方案是尝试扩展每个ajax调用的会话。

尝试将以下jquery脚本代码放在portlet网页中。

jQuery(document).ready(function(){

    A4J.AJAX.AddListener({
        onafterajax : function(req, evt, data) {
            Liferay.Session.setCookie();
        }
    });
});
祝你好运