我已在tomcat / webapps中部署了一个外部应用程序(使用html页面访问),并尝试将其与Liferay会话同步。问题是超时不同步(使用web.xml中的session-timeout属性指定),访问此页面时的任何活动都不会向Liferay注册(因此,超时不会重置,所以我总是计时在session-timeout属性中指定的时间之后输出,默认为60分钟)。
我试图在我的html页面中显式调用Liferay.Session.extend(),并且firebug显示POST调用以扩展会话,但Liferay似乎仍然没有识别它。
非常感谢任何想法。
感谢
答案 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();
}
});
});
祝你好运