org.apache.axis.transport.http
Class AxisServletBase

java.lang.Object
  |
  +--javax.servlet.GenericServlet
        |
        +--javax.servlet.http.HttpServlet
              |
              +--org.apache.axis.transport.http.AxisServletBase
All Implemented Interfaces:
java.io.Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
Direct Known Subclasses:
AdminServlet, AxisServlet

public class AxisServletBase
extends javax.servlet.http.HttpServlet

Base class for servlets used in axis, has common methods to get and save the engine to a common location, currently the webapp's context, though some alternate persistence mechanism is always possible. Also has a load counter shared by all servlets; tracks the # of active http requests open to any of the subclasses.

Author:
Steve Loughran
See Also:
Serialized Form

Field Summary
protected static java.lang.String ATTR_AXIS_ENGINE
          name of the axis engine to use in the servlet context
protected  AxisServer axisServer
          per-instance cache of the axis server
 
Constructor Summary
AxisServletBase()
           
 
Method Summary
protected static void decLockCounter()
          thread safe lock counter decrement
 void destroy()
          Destroy method is called when the servlet is going away.
 AxisServer getEngine()
          get the engine for this servlet from cache or context
static AxisServer getEngine(javax.servlet.http.HttpServlet servlet)
          This is a uniform method of initializing AxisServer in a servlet context.
protected static java.util.Map getEngineEnvironment(javax.servlet.http.HttpServlet servlet)
          extract information from the servlet configuration files
protected  java.lang.String getHomeDir()
          what is the root dir of the applet?
static int getLoadCounter()
          get a count of the # of services running.
protected  java.lang.String getOption(javax.servlet.ServletContext context, java.lang.String param, java.lang.String dephault)
          Retrieve option, in order of precedence: (Managed) System property (see discovery.ManagedProperty), servlet init param, context init param.
 javax.servlet.ServletContext getServletContext()
          what is the servlet context
protected  java.lang.String getWebappBase(javax.servlet.http.HttpServletRequest request)
          extract the base of our webapp from an inbound request
protected  java.lang.String getWebInfPath()
          accessor to webinf
protected static void incLockCounter()
          thread safe lock counter increment
 void init()
          our initialize routine; subclasses should call this if they override it
 boolean isDevelopment()
          probe for the system being 'production'
protected  void service(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)
          subclass of service method that tracks entry count; calls the parent's implementation to have the http method cracked and delegated to the doGet, doPost method.
 
Methods inherited from class javax.servlet.http.HttpServlet
doDelete, doGet, doHead, doOptions, doPost, doPut, doTrace, getLastModified, service
 
Methods inherited from class javax.servlet.GenericServlet
getInitParameter, getInitParameterNames, getServletConfig, getServletInfo, getServletName, init, log, log
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

axisServer

protected AxisServer axisServer
per-instance cache of the axis server


ATTR_AXIS_ENGINE

protected static final java.lang.String ATTR_AXIS_ENGINE
name of the axis engine to use in the servlet context

See Also:
Constant Field Values
Constructor Detail

AxisServletBase

public AxisServletBase()
Method Detail

init

public void init()
our initialize routine; subclasses should call this if they override it

Overrides:
init in class javax.servlet.GenericServlet

destroy

public void destroy()
Destroy method is called when the servlet is going away. Pass this down to the AxisEngine to let it clean up... But don't create the engine if it hasn't already been created.

Specified by:
destroy in interface javax.servlet.Servlet
Overrides:
destroy in class javax.servlet.GenericServlet

getEngine

public AxisServer getEngine()
                     throws AxisFault
get the engine for this servlet from cache or context

Returns:
Throws:
AxisFault

getEngine

public static AxisServer getEngine(javax.servlet.http.HttpServlet servlet)
                            throws AxisFault
This is a uniform method of initializing AxisServer in a servlet context.

AxisFault

getEngineEnvironment

protected static java.util.Map getEngineEnvironment(javax.servlet.http.HttpServlet servlet)
extract information from the servlet configuration files

Parameters:
servlet -
Returns:

getLoadCounter

public static int getLoadCounter()
get a count of the # of services running. This is only ever an approximate number in a busy system

Returns:
The TotalServiceCount value

incLockCounter

protected static void incLockCounter()
thread safe lock counter increment


decLockCounter

protected static void decLockCounter()
thread safe lock counter decrement


service

protected void service(javax.servlet.http.HttpServletRequest req,
                       javax.servlet.http.HttpServletResponse resp)
                throws javax.servlet.ServletException,
                       java.io.IOException
subclass of service method that tracks entry count; calls the parent's implementation to have the http method cracked and delegated to the doGet, doPost method.

Overrides:
service in class javax.servlet.http.HttpServlet
Parameters:
req - request
resp - response
Throws:
javax.servlet.ServletException - something went wrong
java.io.IOException - something different went wrong

getWebappBase

protected java.lang.String getWebappBase(javax.servlet.http.HttpServletRequest request)
extract the base of our webapp from an inbound request

Parameters:
request - request containing http://foobar/axis/services/something
Returns:
some URL like http://foobar:8080/axis/

getServletContext

public javax.servlet.ServletContext getServletContext()
what is the servlet context

Specified by:
getServletContext in interface javax.servlet.ServletConfig
Overrides:
getServletContext in class javax.servlet.GenericServlet
Returns:
get the context from the servlet config

getWebInfPath

protected java.lang.String getWebInfPath()
accessor to webinf

Returns:
path to WEB-INF/ in the local filesystem

getHomeDir

protected java.lang.String getHomeDir()
what is the root dir of the applet?

Returns:
path of root dir

getOption

protected java.lang.String getOption(javax.servlet.ServletContext context,
                                     java.lang.String param,
                                     java.lang.String dephault)
Retrieve option, in order of precedence: (Managed) System property (see discovery.ManagedProperty), servlet init param, context init param. Use of system properties is discouraged in production environments, as it overrides everything else.


isDevelopment

public boolean isDevelopment()
probe for the system being 'production'

Returns:
true for a dev system.


Copyright © 2003 Apache Web Services Project. All Rights Reserved.