【发布时间】:2011-09-23 23:13:30
【问题描述】:
我正在尝试了解 J2EE 和 Web 服务(在 GlassFish 3.1 中)。这个问题是this的后续问题。
我已经弄清楚了如何使用无状态会话 Bean 和 Web 服务。我真的只是出于方便才使用 Web 服务 (@WebService),因为我宁愿不手动解析消息。虽然如果可能的话,我更喜欢比 SOAP 更轻的东西。但是,当我想保持某种状态(例如通过有状态会话 Bean)时,我遇到了问题。我搜索了这个网站,其他几个人都建议我避免这种情况,因为它可能会导致难以找到错误并限制可扩展性。
假设我有一个用户刚刚执行了“userLogin”方法并且成功了。然后我如何在服务器上知道用户已经登录。例如,在登录后,用户可能会通过 SOAP(不带任何参数)调用“getProfile()”,我会为该用户返回正确的信息。我知道通过将 @WebService 附加到我的有状态会话 Bean 是不可能的,因为这仅对 @Stateless 有效。
如果我使用 HttpSession(带有 HttpServlet)和无状态会话 Bean,我知道如何存储状态,但是我无法使用生成良好的 SOAP 消息。
所以我的问题是:我将如何解决维护用户状态的问题,或者调整问题以使我不需要状态?
【问题讨论】:
标签: java jakarta-ee glassfish ejb stateful-session-bean