【问题标题】:Applet requests not extending session live小程序请求不实时延长会话
【发布时间】:2014-05-26 14:23:57
【问题描述】:

这是我在这里的第一个问题,因此感谢任何能够提供帮助的人。

让我解释一下问题:
我有一个小程序,可以将文件按块上传到 servlet。
小程序的参数之一是 JSESSIONID,因此它可以创建一个 cookie 并识别服务器上的正确会话(使用 wireshark 测试)。
对于发送的每个块,servlet 正在成功获取会话。

问题是,在上传过程中,会话似乎没有得到延长。如果我(在应用程序“web.xml”中)将会话超时配置为 5 分钟,则必须在小于该时间的时间内上传文件,否则会话将被破坏并且上传将失败。
这很奇怪,因为 servlet 每隔几秒钟执行一次(并接受会话 ID),我迷路了。

这是 web.xml 中的参数:

<session-config><session-timeout>5</session-timeout></session-config>

下一个代码(在 servlet 上)每隔几秒(对于每个块)创建日志,跟踪会话 id 成功:

log.info("isRequestedSessionIdValid==> " + servletRequest.isRequestedSessionIdValid());
log.info("getSession==> " + (servletRequest.getSession(false) != null));
log.info("Requested session ID vs. actual session id: " + servletRequest.getRequestedSessionId() + "==" + servletRequest.getSession(false).getId());

我使用 tomcat 7.0.50 作为 servlet 容器,在集群中配置会话复制和 apache 2 作为前端,粘性会话处于活动状态。

提前感谢您的帮助。

问候, 何塞

【问题讨论】:

标签: java tomcat servlets applet session-timeout


【解决方案1】:

我的一个朋友终于发现了发生的事情。也许这可以帮助某人。

问题在于用于创建应用程序 icefaces 的框架。小程序被放置在一个 icefaces 页面上,但上传是一个标准的 servlet。 Icefaces 为他的页面设置了一个监视器,当没有请求该页面时,监视器最终会自行使底层会话无效。

所以解决方案是从 servlet 中恢复 icefaces 监视器并“触摸”它的会话控制。

最好的问候, 何塞

【讨论】:

    猜你喜欢
    • 2011-04-17
    • 2014-07-02
    • 2019-02-24
    • 2011-04-22
    • 2012-02-08
    • 2016-09-26
    • 2015-11-24
    • 2016-04-02
    • 1970-01-01
    相关资源
    最近更新 更多