Android 会话在 IBM Websphere Server 中丢失

Android Session getting lost in IBM Websphere Server

每当我从 android 设备点击登录页面时,必须创建并维护一个会话,直到用户点击注销按钮。但是 IBM Websphere 服务器似乎有一个奇怪的问题。 .我能够成功登录,但是当我尝试请求一些其他数据时,会话从服务器丢失,Apache TomCat 上的服务器 运行 不是这种情况..也在 iOS 设备工作正常!

示例: 1. 用户登录 -> 为这个用户创建一个会话 2. Android 应用程序以 1 秒的间隔连续访问服务器 3. 用户注销 -> 用户注销成功

如果是 Apache TomCat,此流程是正确的,但如果是 Websphere,则在第 2 步..会话丢失,因此用户甚至无法注销

可能是什么问题?服务器端有什么我可能遗漏的吗?还是 websphere 存在兼容性问题?

这个问题需要分两部分解决

  1. Android边

    Android HttpPost 默认不发送必要的 headers ,所以我们需要显式添加 headers ,其中最重要的是 JSESSIONID 当你处理 session 使用 Websphere 服务器管理 android .. 您所要做的就是从服务器响应中获取 JESSIONID,并将其附加到您对服务器发出的任何进一步请求中。

  2. Websphere

Websphere需要设置important 属性,可以通过以下步骤实现:

一个。打开管理控制台。

b。 Select 服务器 > 应用程序服务器 > Server_Name > 服务器 基础架构 > Java 和流程管理 > 流程定义 > Java 虚拟机 > 自定义属性 > 新建。

c。为 JVM 添加一个新的 Custom 属性 以重用 sessionId: 系统 属性 名称:HttpSessionIdReuse 系统 属性 值:true

d.保存更改并重新启动应用程序服务器。