创建了多个HTTP会话

时间:2015-03-03 17:04:30

标签: java session servlets https httpsession

有些客户报告了在Internet Explorer 6和8中创建的多个http会话的问题。但是在使用firefox / chrome时没有观察到这种情况。此问题也随机发生。

我们在使用IE 6/8版本的系统中也看不到相同的内容。

已在web.xml中定义了以下内容

<!-- Listen to events of HTTP session creation and deletion -->
<!-- Introduced as part of the correction for FR: DW1694 -->
<listener>
    <listener-class>helper.SessionListener</listener-class>
</listener>

HTTPSessionListener:

// sessions getting created
public void sessionCreated(HttpSessionEvent event)
{
    //adding the session to map
    SessionMap.addSession(event.getSession());
    logger.debug("HTTP Session created: ", event.getSession().getId());
}

我们在日志中看到以下内容

instance1 2015-03-03 10:50:28,215 DEBUG (SessionListener.java:sessionCreated:24) [TP-Processor19] | HTTP Session created: A60B2EB1B46B1CE5271BE5B15B16D593
instance1 2015-03-03 10:50:28,283 DEBUG (SessionListener.java:sessionCreated:24) [TP-Processor19] | HTTP Session created: EFEE74A6D2C07543862FB121CF80B53A
instance1 2015-03-03 10:50:28,287 DEBUG (SessionListener.java:sessionCreated:24) [TP-Processor21] | HTTP Session created: 942FBB9B8449D5AC2B601469B70FAFB9
instance1 2015-03-03 10:50:28,307 DEBUG (SessionListener.java:sessionCreated:24) [TP-Processor19] | HTTP Session created: 51752544F3249834D84F6266E0E5A613
instance1 2015-03-03 10:50:28,315 DEBUG (SessionListener.java:sessionCreated:24) [TP-Processor19] | HTTP Session created: 7811007F8C6367862DC03F10E301F3CA
instance1 2015-03-03 10:50:28,355 DEBUG (SessionListener.java:sessionCreated:24) [TP-Processor19] | HTTP Session created: F702D5F5FD59DC9390CBE3405FCD03B0
instance1 2015-03-03 10:50:28,363 DEBUG (SessionListener.java:sessionCreated:24) [TP-Processor19] | HTTP Session created: 616894DF984EA171BD7DFC304460AF25
instance1 2015-03-03 10:50:30,347 DEBUG (SessionListener.java:sessionDestroyed:33) [TP-Processor19] | HTTP Session destroyed: 616894DF984EA171BD7DFC304460AF25

请注意,会话是连续创建的。我们无法重现系统,但似乎在一些客户系统中出现了。

流量超过https,因此我也无法捕获wireshark跟踪。

有什么想法吗?什么可能导致多重创作?

1 个答案:

答案 0 :(得分:0)

我遇到了类似的情况,其中有多个通过Javascript提交到服务器,因此逻辑被执行了两次。

罪魁祸首并没有增加返回虚假;在javascript方法中的form.submit()之后。

服务器代码似乎很干净,客户端应该有多次点击服务器是我怀疑的。