Jay Thanks for the reply one last question in the line " outMsgCtx.setEnvelope (createSOAPEnvelope("Fred"));" createSOAPEnvelope is a member of SOAPfactory, which is an interface. Is there a particular implementation of createSOAPEnvelope that you suggest i use.
Thanks Anil On 4/24/07, James Arbo <[EMAIL PROTECTED]> wrote:
It's part of axiom axiom-api-1.2.2.jar -----Original Message----- *From:* James Arbo *Sent:* Monday, April 23, 2007 6:41 PM *To:* axis-user@ws.apache.org *Subject:* RE: Axis2 Manage Session Cookie Manually Anil, Below is the client side code that produces a valid response (MessageContext) from the server: ServiceClient sender = new ServiceClient(); OperationClient opClient = sender.createClient( ServiceClient.ANON_OUT_IN_OP); MessageContext outMsgCtx = new MessageContext(); Options opts = outMsgCtx.getOptions(); opts.setTo(targetEPR); opts.setTransportInProtocol(Constants.TRANSPORT_HTTP); opts.setTimeOutInMilliSeconds(300000); opts.setAction("urn:sayHello"); opts.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,true); outMsgCtx.setEnvelope(createSOAPEnvelope("Fred")); //now add the outgoing msg context to our client. opClient.addMessageContext(outMsgCtx); //make the call opClient.execute(true); /* * print the calls response */ //retrieve the messageContext for the "in"coming response. MessageContext inMsgtCtx = opClient.getMessageContext("In"); SOAPEnvelope response = inMsgtCtx.getEnvelope(); System.out.println(response); Hope that helps. It took me quite a while to get an example of the http session and another of the soap session working. I find the documentation weak at best. Good luck. -Jay -----Original Message----- *From:* Anil Chukkapalli [mailto:[EMAIL PROTECTED] *Sent:* Monday, April 23, 2007 6:26 PM *To:* axis-user@ws.apache.org *Subject:* Re: Axis2 Manage Session Cookie Manually Hi The problem that i am having is MessageContext inMsgCtx = MessageContext.getCurrentMessageContext(); is returning me a null, is inMsgCtx a predefined class or an object, when should i call " MessageContext.getCurrentMessageContext()", i called it after i got the response. I am using the stub created using wsdl2java tool to create the stub so i had to do something in the effect of xyzStub.OpenDBResponse response = xyzStub.OpenDB(openDB); Thank you Anil On 4/23/07, *James Arbo* < [EMAIL PROTECTED]> wrote: I've successfully retrieved and returned http session cookies. Here's a snippet for reading a cookie from an axis2 client: String incomingCookie = (String) inMsgCtx.getServiceContext().getProperty(HTTPConstants.COOKIE_STRING); Here's one for writing a cookie. /* * This is how to add a custom header, such as a cookie */ Header hdr = new Header("Cookie","my_cookie=xyz;"); ArrayList headers = new ArrayList(); headers.add(hdr); opts = outMsgCtx.getOptions(); opts.setProperty(HTTPConstants.HTTP_HEADERS,headers); You could do something similar to the above but the easiest way for me to get this working was to set the manageTransportSession=true in axis2.xmland then use the following on the client side: opts.setProperty(HTTPConstants.REUSE_HTTP_CLIENT,true); This tells axis to re-use the httpclient object for second, third, etc.. requests. If this is done, the http-client remembers the JSESSIONID from the first request and sends it back to the server on subsequent requests. -Jay -----Original Message----- *From:* Anil Chukkapalli [mailto:[EMAIL PROTECTED] ] *Sent:* Monday, April 23, 2007 2:48 PM *To:* axis-user@ws.apache.org *Subject:* Axis2 Manage Session Cookie Manually Hi Is there any way we can manage sessions manually using Axis2, my non java web service maintains session using cookies. Is there a way my Axis2 client can read the soap/http header to extract the session information and use the extracted infromation for further web service calls, example getting the UUID from the header and use the UUID to create a cookie in my Axis2 client using setProperty. I have tried using the set manage session method to true but that does not work. Can you please point me to another thread that answers my question if you are unable to answer this question. Thanks Anil