1

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

我尝试在我的 html 页面中显式调用 Liferay.Session.extend(),并且 firebug 显示进行了扩展会话的 POST 调用,但 Liferay 似乎仍然无法识别它。

任何想法将不胜感激。

谢谢

4

1 回答 1

1

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

无论您在 portlet 中做什么,它都是对 Liferay 的 ajax 调用,因此解决方案是尝试为每个 ajax 调用扩展会话。

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

jQuery(文档).ready(函数() {

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

祝你好运

于 2012-11-16T01:42:14.803 回答