如何在Web服务上工作时获取会话对象?

如何在Web服务上工作时获取会话对象?

服务在两个程序之间调用。 如何使用webservices处理用户会话对象。 使用请求对象无法获取会话,因为在讨论服务时不会有请求或响应。

如果您正在使用JAX-WS来创建Web服务,那么您可以通过WebServiceContext访问HttpServletRequest对象(以及您的HttpSession对象)。

 @WebService(...) public class MyService { @Resource private WebServiceContext ctx; private HttpSession getSession() { HttpServletRequest req = (HttpServletRequest) this.ctx.getMessageContext() .get(MessageContext.SERVLET_REQUEST); return req.getSession(); } } 

有关更广泛的示例,请参阅Art Frechette的“使用JAX-WS 2.0维护会话” 。