Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/382.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 即使用户在页面上执行活动,Liferay会话也会过期_Java_Ajax_Liferay_Liferay 6 - Fatal编程技术网

Java 即使用户在页面上执行活动,Liferay会话也会过期

Java 即使用户在页面上执行活动,Liferay会话也会过期,java,ajax,liferay,liferay-6,Java,Ajax,Liferay,Liferay 6,我的页面上有一个portlet,对于我们使用ajax调用资源URL的所有用户操作,只有portlet中的内容不断变化。 现在的问题是,即使用户在页面上持续活动,我们在页面上的会话也会过期。为什么会发生这种情况?简单的答案是,您实际上并没有在Liferay周围导航。使用AJAX不算用户执行停止会话过期的操作。您将需要该页面来重新加载或延长会话时间 简单的答案是,您实际上并没有在Liferay周围导航。使用AJAX不算用户执行停止会话过期的操作。您将需要该页面来重新加载或延长会话时间 您可以通过以下

我的页面上有一个portlet,对于我们使用ajax调用资源URL的所有用户操作,只有portlet中的内容不断变化。
现在的问题是,即使用户在页面上持续活动,我们在页面上的会话也会过期。为什么会发生这种情况?

简单的答案是,您实际上并没有在Liferay周围导航。使用AJAX不算用户执行停止会话过期的操作。您将需要该页面来重新加载或延长会话时间

简单的答案是,您实际上并没有在Liferay周围导航。使用AJAX不算用户执行停止会话过期的操作。您将需要该页面来重新加载或延长会话时间

您可以通过以下两个步骤解决此问题:

1-将此行添加到portal-ext.properties文件中:

(3000是会话到期前的分钟数)

2-转到/conf/web.xml(Tomcat服务器)并编辑会话配置超时:

<session-config>
        <session-timeout>3000</session-timeout>
  </session-config>

3000

您可以通过以下两个步骤解决此问题:

1-将此行添加到portal-ext.properties文件中:

(3000是会话到期前的分钟数)

2-转到/conf/web.xml(Tomcat服务器)并编辑会话配置超时:

<session-config>
        <session-timeout>3000</session-timeout>
  </session-config>

3000

IMHO发送到服务器的任何请求都应该能够很好地保留会话。服务器只知道请求和响应,浏览器是区分ajax请求和刷新页面的常规请求的浏览器。我可能是不正确的,但是如果你能用一些好的参考来支持你的答案,那么就可以解决这个问题了。好吧,我遇到了与问题所述完全相同的问题,我们使用纯AJAX将其缩小到页面。然而,如果你有不同的答案,我当然有兴趣知道你的想法。我测试了它,你是正确的。因此,在Liferay中,ajax请求似乎不被视为用户活动的一部分。之所以会出现这种情况,是因为如果用户保持多个选项卡打开,并且存在portlet(比如chat portlet),这些portlet在没有任何用户操作的情况下持续ping服务器,那么会话也将不必要地打开,并将使用服务器资源。但是我觉得必须有一些很好的方法来解决这个问题,而不是在每个ajax请求上手动扩展会话。啊,是的,这是有意义的,因此本质上聊天portlet将在没有用户干预的情况下手动扩展会话。我同意这一点,因为这已经成为AJAX重页面的一个常见问题。可能是一个会话变量/标志?IMHO发送到服务器的任何请求都应该能够很好地保留会话。服务器只知道请求和响应,浏览器是区分ajax请求和刷新页面的常规请求的浏览器。我可能是不正确的,但是如果你能用一些好的参考来支持你的答案,那么就可以解决这个问题了。好吧,我遇到了与问题所述完全相同的问题,我们使用纯AJAX将其缩小到页面。然而,如果你有不同的答案,我当然有兴趣知道你的想法。我测试了它,你是正确的。因此,在Liferay中,ajax请求似乎不被视为用户活动的一部分。之所以会出现这种情况,是因为如果用户保持多个选项卡打开,并且存在portlet(比如chat portlet),这些portlet在没有任何用户操作的情况下持续ping服务器,那么会话也将不必要地打开,并将使用服务器资源。但是我觉得必须有一些很好的方法来解决这个问题,而不是在每个ajax请求上手动扩展会话。啊,是的,这是有意义的,因此本质上聊天portlet将在没有用户干预的情况下手动扩展会话。我同意这一点,因为这已经成为AJAX重页面的一个常见问题。可能是会话变量/标志?为什么需要在两个位置添加它?tomcat属性用于设置会话超时的范围,Liferay属性用于设置会话超时。Tomcat timeout>liferay timeout属性为什么需要将其添加到两个位置?Tomcat属性用于设置会话超时的范围,liferay属性用于设置会话超时。Tomcat超时>liferay超时属性