Class AxisServletBase

java.lang.Object
javax.servlet.GenericServlet
javax.servlet.http.HttpServlet
org.apache.axis.transport.http.AxisServletBase
All Implemented Interfaces:
Serializable, javax.servlet.Servlet, javax.servlet.ServletConfig
Direct Known Subclasses:
AdminServlet, AutoRegisterServlet, 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:
  • Field Summary

    Fields
    Modifier and Type
    Field
    Description
    protected static final String
    name of the axis engine to use in the servlet context
    protected AxisServer
    per-instance cache of the axis server
  • Constructor Summary

    Constructors
    Constructor
    Description
     
  • Method Summary

    Modifier and Type
    Method
    Description
    protected static void
    thread safe lock counter decrement
    void
    Destroy method is called when the servlet is going away.
    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 Map
    getEngineEnvironment(javax.servlet.http.HttpServlet servlet)
    extract information from the servlet configuration files
    protected String
    what is the root dir of the applet?
    static int
    get a count of the # of services running.
    protected String
    getOption(javax.servlet.ServletContext context, String param, String dephault)
    Retrieve option, in order of precedence: (Managed) System property (see discovery.ManagedProperty), servlet init param, context init param.
    javax.servlet.ServletContext
    what is the servlet context
    protected String
    getWebappBase(javax.servlet.http.HttpServletRequest request)
    extract the base of our webapp from an inbound request
    protected String
    accessor to webinf
    protected static void
    thread safe lock counter increment
    void
    our initialize routine; subclasses should call this if they override it
    boolean
    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 Details

    • axisServer

      protected AxisServer axisServer
      per-instance cache of the axis server
    • ATTR_AXIS_ENGINE

      protected static final String ATTR_AXIS_ENGINE
      name of the axis engine to use in the servlet context
      See Also:
  • Constructor Details

    • AxisServletBase

      public AxisServletBase()
  • Method Details

    • init

      public void init() throws javax.servlet.ServletException
      our initialize routine; subclasses should call this if they override it
      Overrides:
      init in class javax.servlet.GenericServlet
      Throws:
      javax.servlet.ServletException
    • 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.
      Throws:
      AxisFault
    • getEngineEnvironment

      protected static 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, 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
      IOException - something different went wrong
    • getWebappBase

      protected 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 String getWebInfPath()
      accessor to webinf
      Returns:
      path to WEB-INF/ in the local filesystem
    • getHomeDir

      protected String getHomeDir()
      what is the root dir of the applet?
      Returns:
      path of root dir
    • getOption

      protected String getOption(javax.servlet.ServletContext context, String param, 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.