我正在尝试了解 J2EE 和 Web 服务(在 GlassFish 3.1 中)。这个问题是对此的一个跟进。
我已经弄清楚如何使用无状态会话 Bean 和 Web 服务。我实际上只是@WebService
出于方便而使用 Web Service (),因为我宁愿不手动解析消息。虽然如果可能的话,我更喜欢比 SOAP 更轻的东西。但是,当我想保持某种状态(例如通过有状态会话 Bean)时,我遇到了问题。我已经搜索了这个站点和其他几个建议我避免这种情况的站点,因为它可能导致难以找到错误并限制可扩展性。
假设我有一个用户刚刚执行了“userLogin”方法并且成功了。然后我如何在服务器上知道用户已经登录。例如,在登录后,用户可能会通过 SOAP(不带任何参数)调用“getProfile()”,我会为该用户返回正确的信息。我知道通过附加到我的有状态会话 Bean 是不可能的,@WebService
因为这仅对@Stateless
.
如果我使用 HttpSession(带有 HttpServlet)和无状态会话 Bean,我知道如何存储状态,但是我不能使用生成良好的 SOAP 消息。
所以我的问题是:我将如何解决维护用户状态的问题,或者调整问题以使我不需要状态?