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