在Web service中沒有一種治理session的標準方法,只有兩種公認的技術,一種是依靠HTTP和HTTP cookies,另一種,或許也是最重要的一種方法,就是用SOAP headers。Axis能幫助開發人員實現這兩種技術。 在Axis中缺省使用的是HTTP managed sessions。在一個服務器中這么做是十分輕易的,因為大多數對Axis Web service的治理是通過org.apache.axis.MessageContext的一個實例來完成的。在一個Axis Web service中你可以通過調用MessageContext類中的靜態方法來得到MessageContext的一個實例:
public class SessionService { public String echo(String in) { MessageContext mc =MessageContext.getCurrentContext(); MessageContext中有一個名為setMaintainSession的方法,調用它便可激活session。但在編寫(Axis 1.1 RC2)時,session對象只有在被訪問時才能激活,如下列代碼所示:
public class SessionService { public String echo(String in) { MessageContext mc = MessageContext. getCurrentContext(); Session session = mc.getSession(); String name = (String)session.get("name"); return in; } } 這樣會導致Axis架構生成一個set-cookie header:Set-Cookie: