The following example shows a sample CookieContainer class. You can use this as a model for your own class. Note that:

package com.example.webservice;

import org.apache.axis.MessageContext;
import org.apache.axis.client.Call;
import org.apache.axis.client.Stub;
import org.apache.axis.transport.http.HTTPConstants;

/**
 * A class that can be passed between web service clients that keeps track of
 * the cookies received from the server. These cookies are then used by
 * subsequent web service client calls in order to ensure that session
 * state is maintained.
**/
public class CookieContainer
{
 //-------------------------------------
 // Member variables
 //-------------------------------------

 /** Array of cookies from the Set-Cookie HTTP header **/
 private String[] mCookies = null;

 /** Array of cookies from the Set-Cookie2 HTTP header **/
 private String[] mCookies2 = null;

 //-------------------------------------
 // Methods
 //-------------------------------------

 /**
 * Gets the cookies set by the Set-Cookie HTTP header
 * @return the cookies from the Set-Cookie HTTP header, which
 * may be null
 **/
 public String[] getCookies() {
 return mCookies;
 }

 /**
 * Gets the cookies set by the Set-Cookie2 HTTP header
 * @return the cookies from the Set-Cookie2 HTTP header, which
 * may be null
 **/
 public String[] getCookies2() {
 return mCookies2;
 }

 /**
 * Extracts the cookies from the given Axis MessageContext, and
 * sets the cookies and cookies2 properties from them.
 * @param pContext the Axis message context to examine. This
 * cannot be null
 **/
 public void extractCookies(MessageContext pContext) {
 mCookies = (String[])pContext.getProperty
 (HTTPConstants.HEADER_COOKIE);
 mCookies2 = (String[])pContext.getProperty
 (HTTPConstants.HEADER_COOKIE2);
 }

 /**
 * Extracts the cookies from the given Axis Call, and
 * sets the cookies and cookies2 properties from them.
 * @param pCall the Axis call to examine. This
 * cannot be null
 **/
 public void extractCookies(Call pCall) {
 extractCookies(pCall.getMessageContext());
 }

 /**
 * Extracts the cookies from the given Axis Stub, and
 * sets the cookies and cookies2 properties from them.
 * @param pStub the Axis stub to examine. This
 * cannot be null
 **/
 public void extractCookies(Stub pStub) {
 extractCookies(pStub._getCall());
 }

 /**
 * Pushes the cookie values that are set on the instance to
 * the given Call
 * @param pCall the call to set the cookies on. This cannot be null
 **/
 public void pushCookies(Call pCall) {
 if(mCookies != null)
 pCall.setProperty(HTTPConstants.HEADER_COOKIE, mCookies);
 if(mCookies2 != null)
 pCall.setProperty(HTTPConstants.HEADER_COOKIE2, mCookies2);
 }

 /**
 * Pushes the cookie values that are set on the instance to
 * the given Stub
 * @param pStub the stub to set the cookies on. This cannot be null
 **/
 public void pushCookies(Stub pStub) {
 if(mCookies != null)
 pStub._setProperty(HTTPConstants.HEADER_COOKIE, mCookies);
 if(mCookies2 != null)
 pStub._setProperty(HTTPConstants.HEADER_COOKIE2, mCookies2);
 }
}

Copyright © 1997, 2013 Oracle and/or its affiliates. All rights reserved. Legal Notices