【问题标题】:Synchronizing tomcat session timeout with deployed application将 tomcat 会话超时与部署的应用程序同步
【发布时间】:2012-10-11 13:02:44
【问题描述】:

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

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

任何想法将不胜感激。

谢谢

【问题讨论】:

  • 在调用Liferay.Session.extend();之前设置Liferay.Session.autoExtent = true;有什么帮助吗?
  • 很遗憾没有。这永远不会使会话无效,从而使超时无价值。不过感谢您的建议。
  • 你能发布一些代码吗?我认为这会有所帮助

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


【解决方案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();
        }
    });
});

祝你好运

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-01-04
    • 2017-08-30
    • 2016-06-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-20
    • 2018-07-03
    相关资源
    最近更新 更多