org.apache.axis.handlers

Class SimpleSessionHandler

Implemented Interfaces:
Handler, Serializable

public class SimpleSessionHandler
extends BasicHandler

This handler uses SOAP headers to do simple session management.

Essentially, you install it on both the request and response chains of your service, on both the client and the server side.

ON THE SERVER:

ON THE CLIENT:

SimpleSessions are "reaped" periodically via a very simplistic mechanism. Each time the handler is invoke()d we check to see if more than reapPeriodicity milliseconds have elapsed since the last reap. If so, we walk the collection of active Sessions, and for each one, if it hasn't been "touched" (i.e. had a getProperty() or setProperty() performed) in longer than its timeout, we remove it from the collection.

Author:
Glen Daniels (gdaniels@apache.org)

Field Summary

static String
SESSION_ID
static String
SESSION_LOCALPART
static String
SESSION_NS
protected static Log
log
static QName
sessionHeaderName

Fields inherited from class org.apache.axis.handlers.BasicHandler

makeLockable, name, options

Method Summary

void
doClient(MessageContext context)
Client side of processing.
void
doServer(MessageContext context)
Server side of processing.
void
invoke(MessageContext context)
Process a MessageContext.
void
setDefaultSessionTimeout(int defaultSessionTimeout)
Set the default session timeout in SECONDS Again, for testing.
void
setReapPeriodicity(long reapTime)
Set the reaper periodicity in SECONDS Convenience method for testing.

Methods inherited from class org.apache.axis.handlers.BasicHandler

canHandleBlock, cleanup, generateWSDL, getDeploymentData, getName, getOption, getOptions, getUnderstoodHeaders, init, initHashtable, onFault, setName, setOption, setOptionDefault, setOptions, setOptionsLockable

Field Details

SESSION_ID

public static final String SESSION_ID

SESSION_LOCALPART

public static final String SESSION_LOCALPART

SESSION_NS

public static final String SESSION_NS

log

protected static Log log

sessionHeaderName

public static final QName sessionHeaderName

Method Details

doClient

public void doClient(MessageContext context)
            throws AxisFault
Client side of processing.

doServer

public void doServer(MessageContext context)
            throws AxisFault
Server side of processing.

invoke

public void invoke(MessageContext context)
            throws AxisFault
Process a MessageContext.
Specified by:
invoke in interface Handler

setDefaultSessionTimeout

public void setDefaultSessionTimeout(int defaultSessionTimeout)
Set the default session timeout in SECONDS Again, for testing.

setReapPeriodicity

public void setReapPeriodicity(long reapTime)
Set the reaper periodicity in SECONDS Convenience method for testing. !!! TODO: Should be able to set this via options on the Handler or perhaps the engine.

Copyright B) 2005 Apache Web Services Project. All Rights Reserved.