有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java小程序请求未扩展实时会话

这是我在这里的第一个问题,感谢所有能够提供帮助的人

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

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

这就是网络上的论点。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());

我使用Tomcat7.0.50作为servlet容器,在集群中配置会话复制,使用Apache2作为前端,激活粘性会话

提前感谢你的帮助

问候,, 何塞


共 (1) 个答案

  1. # 1 楼答案

    最后,我的一个朋友发现了发生的事情。也许这可以帮助别人

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

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

    致以最良好的祝愿, 何塞