【发布时间】:2015-04-19 08:40:58
【问题描述】:
每当我从 android 设备点击登录页面时,都必须创建并维护一个会话,直到用户点击注销按钮。但 IBM Websphere Servers 似乎存在一个奇怪的问题。我能够登录成功,但是当我尝试请求其他一些数据时,会话从服务器中丢失了,在 Apache TomCat 上运行的服务器并非如此 .. 在 iOS 设备中也可以正常工作!
示例: 1. 用户登录 -> 为该用户创建会话 2. Android App 以 1 秒的间隔连续访问服务器 3.用户注销->用户注销成功
在 Apache TomCat 的情况下此流程正常,但在第 2 步的 Websphere 的情况下..会话丢失,因此用户甚至无法注销
可能是什么问题?服务器端有什么我可能会丢失的吗?还是 websphere 有兼容性问题?
【问题讨论】:
-
您是在 Android 上的 Chrome 中执行此操作吗?从自定义应用程序的 WebView 中?经过身份验证的会话是否可以在其他设备或平台上运行?您的日志中是否有任何错误?
-
它是一个没有 webview 的自定义 android 应用程序,因为我只需要一组数据(如字符串),服务器会给我,我正在使用 httpclient 向服务器发出请求......一切都适用于 Apache Tomcat,但是当我切换到 IBM Websphere ..在错误日志中我看到,会话变为空 .. 系列事件 -> 1. 我的应用程序点击登录页面 -> 服务器回复成功 2. 我的应用程序点击数据页面 -> 服务器在第 1 次点击 3 时回复适当的数据。我的应用程序第 2 次点击数据页面 - > 这里我在 Websphere 中获得会话空值,在 iOS 设备中,Apache 和 IBM Websphere 一切正常
-
您是如何处理会话信息的?你在通话之间保留你的cookie吗?请参阅此其他 SO 以了解实施/推理:stackoverflow.com/a/6454516/940217
-
我已经以相同的方式实现了.. WebSphere 仍然没有运气.. Apache Tomcat 的会话处理很好.. 当我将我从 tomcat 获得的响应头与 websphere 的响应头进行比较时..我注意到的唯一区别是,如果是 websphere,则在 JSESSIONID 中附加了“:-1”
-
-1 不应该是问题,如果您正在比较响应标头 - 是一系列事件的会话 ID?您写过关于登录的文章,您是在使用 WebSphere 并提供安全性,还是您的自定义解决方案?您是否有一台服务器或场/集群并进行任何负载平衡?
标签: android session tomcat websphere