2010-01-16 64 views
2

如何在使用webservices時獲取會話對象?如何在使用Web服務時獲取會話對象?

服務在兩個程序之間調用。如何在使用webservices時獲取用戶會話對象。使用請求對象獲取會話是不可能的,因爲當我們討論服務時不會有請求或響應。

+0

什麼?爲什麼沒有要求或迴應? – 2010-01-16 07:59:25

回答

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(); 
    } 
} 

對於更廣泛的例子,參見例如Art Frechette的"Maintaining sessions using JAX-WS 2.0"