如何在Web服务上工作时获取会话对象? [英] How to get session object while working on webservices?
问题描述
如何在处理webservices时获取会话对象?
How to get session object while working on webservices?
在两个程序之间调用服务。如何使用webservices处理用户会话对象。我们无法使用请求对象获取会话,因为在讨论服务时不会有请求或响应。
Services are called between two programs. How to get user session object while workin with webservices. It is not possible to get session using request object as there will not be request or response when we talk about services.
推荐答案
如果您正在使用 JAX-WS 来创建您的Web服务,然后您可以访问 HttpServletRequest
对象(以及 HttpSession
对象)通过 WebServiceContext 。
If you're working with JAX-WS to create your web services, then you can access the HttpServletRequest
object (and hence your HttpSession
object) via the WebServiceContext.
@WebService(...)
public class MyService {
@Resource
private WebServiceContext ctx;
private HttpSession getSession() {
HttpServletRequest req = (HttpServletRequest) this.ctx.getMessageContext()
.get(MessageContext.SERVLET_REQUEST);
return req.getSession();
}
}
有关更广泛的示例,请参阅,例如,<一个href =http://blogs.oracle.com/artf/entry/maintaining_sessions_using_jax_ws =nofollow noreferrer>使用JAX-WS 2.0维护会话由Art Frechette提供。
For a more extensive example, see, e.g., "Maintaining sessions using JAX-WS 2.0" by Art Frechette.
这篇关于如何在Web服务上工作时获取会话对象?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!