Return-Path: Delivered-To: apmail-ws-axis-dev-archive@www.apache.org Received: (qmail 66503 invoked from network); 26 Apr 2005 22:14:05 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (209.237.227.199) by minotaur.apache.org with SMTP; 26 Apr 2005 22:14:05 -0000 Received: (qmail 90718 invoked by uid 500); 26 Apr 2005 22:14:42 -0000 Delivered-To: apmail-ws-axis-dev-archive@ws.apache.org Received: (qmail 90547 invoked by uid 500); 26 Apr 2005 22:14:41 -0000 Mailing-List: contact axis-dev-help@ws.apache.org; run by ezmlm Precedence: bulk Reply-To: axis-dev@ws.apache.org list-help: list-unsubscribe: List-Post: Delivered-To: mailing list axis-dev@ws.apache.org Received: (qmail 90429 invoked by uid 99); 26 Apr 2005 22:14:40 -0000 X-ASF-Spam-Status: No, hits=0.0 required=10.0 tests= X-Spam-Check-By: apache.org Received: from ajax-1.apache.org (HELO ajax.apache.org) (192.87.106.226) by apache.org (qpsmtpd/0.28) with ESMTP; Tue, 26 Apr 2005 15:14:39 -0700 Received: from ajax.apache.org (ajax.apache.org [127.0.0.1]) by ajax.apache.org (Postfix) with ESMTP id 41BCF2DE for ; Tue, 26 Apr 2005 23:46:32 +0200 (CEST) Message-ID: <1153746946.1114551992261.JavaMail.jira@ajax.apache.org> Date: Tue, 26 Apr 2005 23:46:32 +0200 (CEST) From: "Davanum Srinivas (JIRA)" To: axis-dev@ws.apache.org Subject: [jira] Commented: (AXIS-986) Can't share sessions between different services ?? Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Virus-Checked: Checked X-Spam-Rating: minotaur.apache.org 1.6.2 0/1000/N [ http://issues.apache.org/jira/browse/AXIS-986?page=comments#action_63850 ] Davanum Srinivas commented on AXIS-986: --------------------------------------- Stub._getCall() > Can't share sessions between different services ?? > -------------------------------------------------- > > Key: AXIS-986 > URL: http://issues.apache.org/jira/browse/AXIS-986 > Project: Axis > Type: Bug > Components: Basic Architecture > Versions: 1.1rc2 > Environment: Operating System: Windows NT/2K > Platform: PC > Reporter: Tristan B. > Attachments: sessionPatch.jar > > Hi everybody, > I've been trying lately to share a session between two distinct axis web > services. I am using client generated classes (with WSDL2Java) and the default > hhtp cookie based session management. > Here is how I proceeded : > 1) I invoke the first XXX service : > XXXService firstService = new XXXServiceLocator(); > XXX firstServiceRet = firstService.getXXX(new java.net.URL(...)); > ((XXXSoapBindingStub)firstServiceRet).setMaintainSession(true); > firstServiceRet.XXX(...) //invoke the service > Note the use of the setMaintainSession method : this sets the Stub and the > MessageContext maintainSession property to true. > When getting back the response from the axis server, if this property is set to > true, axis retrieves the cookie header from the response and stores it in the > MessageContext : > msgContext.setProperty(HTTPConstants.HEADER_COOKIE, cookie); > (see org.apache.axis.transport.http.HTTPSender for details ...) > 2) Then here is how I retrieve the cookie after the call to the XXX Service : > Call XXXCall = ((org.apache.axis.client.axis.Service)firstService).getCall(); > org.apache.axis.MessageContext msgContext = XXXCall.getMessageContext(); > String cookie = msgContext.getStrProp(HTTPConstants.HEADER_COOKIE); > This works fine ... checked it with TCPMon ... get the real cookie ... > 3) I invoke the second YYY service: > YYYService secondService = new YYYServiceLocator(); > YYY secondServiceRet = secondService.getYYY(new java.net.URL(...)); > ((YYYSoapBindingStub)firstServiceRet).setMaintainSession(true); > Here again, if maintainSession is set to true, the writeToSocket method will > retrieve the cookie from the messageContext (String cookie = > msgContext.getStrProp(HTTPConstants.HEADER_COOKIE)) and put it into the http > header request. > My idea here was thus to put the cookie retrieved from the first XXXCall into > the messageContext of the second YYY Call object before invoking it. > The problem is that when invoking the call: YYYCall.invoke(...) (this is done > in the YYYSoapBindingStub class), the invoke metod calls the reset method of > the messageContext and the cookie information is lost !! (MessageContext.bag is > cleared) (see org.apache.axis.client.Call). > Is there a way of passing the cookie to the second Call without modifying axis > code ?? > If not, it wouldn't require much code modifications to allow setting a cookie > in a call and thus allow Session Sharing. > I think session sharing between different services is an important feature. > This is an important issue !!! > Any help would be greatly appreciated !!! Thanks ... > PS: by the way, this method of passing the cookie from service to service works > perfectly with a .NET client ! -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira