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

use*_*924 2 java session web-services

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

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

jan*_*nko 5

如果您正在使用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();
    }
}
Run Code Online (Sandbox Code Playgroud)

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