下午好, 我来这里请求支持是为了尝试理解我在应用程序中注意到的行为,但我无法解释发生这种情况的原因。
设置
我正在使用 Webshepere,版本 9.0.0.11,其中 spring mvc 应用程序在配置文件中通过 HTTPS 运行。这个应用程序在会话(HttpSession)中执行值的定义,以便稍后通过JSP,可以获取此数据以在浏览器中显示。 在客户端,通过js,通过WebSocket建立连接。 WebSocket 服务器位于另一个 WebShepere 配置文件中。
意外行为
每当Websocket连接成功时,所有会话数据都会被删除。仅保留连接成功后记录的数据。
附加数据
默认配置
进行测试后发现,由于与 websocket 的连接是在同一域的另一个端口上进行的,因此正在执行 cookie 覆盖,从而消除了会话数据。
解决办法是,在websoket服务器所在的webshere的配置文件中,更改会话管理中cookie名称的参数化,从默认的(JSESSIONID)更改为(JSESSIONIDA)。
路径:应用程序服务器 > server1 > Web 容器 > 会话管理 > Cookies