Class SimpleAxisServer

java.lang.Object
org.apache.axis.transport.http.SimpleAxisServer
All Implemented Interfaces:
Runnable

public class SimpleAxisServer extends Object implements Runnable
This is a simple implementation of an HTTP server for processing SOAP requests via Apache's xml-axis. This is not intended for production use. Its intended uses are for demos, debugging, and performance profiling. Note this classes uses static objects to provide a thread pool, so you should not use multiple instances of this class in the same JVM/classloader unless you want bad things to happen at shutdown.
Author:
Sam Ruby (ruby@us.ibm.com), Rob Jellinghaus (robj@unrealities.com), Alireza Taherkordi (a_taherkordi@users.sourceforge.net)
  • Field Details

    • log

      protected static org.apache.commons.logging.Log log
    • MAX_SESSIONS_DEFAULT

      public static final int MAX_SESSIONS_DEFAULT
      See Also:
    • sessionIndex

      public static int sessionIndex
  • Constructor Details

    • SimpleAxisServer

      public SimpleAxisServer()
      create a server with the default threads and sessions.
    • SimpleAxisServer

      public SimpleAxisServer(int maxPoolSize)
      Create a server with a configurable pool side; sessions set to the default limit
      Parameters:
      maxPoolSize - maximum thread pool size
    • SimpleAxisServer

      public SimpleAxisServer(int maxPoolSize, int maxSessions)
      Constructor
      Parameters:
      maxPoolSize - max number of threads
      maxSessions - maximum sessions
  • Method Details

    • getPool

      public static ThreadPool getPool()
      get the thread pool
      Returns:
    • finalize

      protected void finalize() throws Throwable
      stop the server if not already told to.
      Overrides:
      finalize in class Object
      Throws:
      Throwable
    • getMaxSessions

      public int getMaxSessions()
      get max session count
      Returns:
    • setMaxSessions

      public void setMaxSessions(int maxSessions)
      Resize the session map
      Parameters:
      maxSessions - maximum sessions
    • isSessionUsed

      protected boolean isSessionUsed()
    • setDoThreads

      public void setDoThreads(boolean value)
      turn threading on or off. This sets a static value
      Parameters:
      value -
    • getDoThreads

      public boolean getDoThreads()
    • getMyConfig

      public EngineConfiguration getMyConfig()
    • setMyConfig

      public void setMyConfig(EngineConfiguration myConfig)
    • createSession

      protected Session createSession(String cooky)
      demand create a session if there is not already one for the string
      Parameters:
      cooky -
      Returns:
      a session.
    • getAxisServer

      public AxisServer getAxisServer()
      demand create an axis server; return an existing one if one exists. The configuration for the axis server is derived from #myConfig if not null, the default config otherwise.
      Returns:
    • run

      public void run()
      Accept requests from a given TCP port and send them through the Axis engine for processing.
      Specified by:
      run in interface Runnable
    • getServerSocket

      public ServerSocket getServerSocket()
      Obtain the serverSocket that that SimpleAxisServer is listening on.
    • setServerSocket

      public void setServerSocket(ServerSocket serverSocket)
      Set the serverSocket this server should listen on. (note : changing this will not affect a running server, but if you stop() and then start() the server, the new socket will be used).
    • start

      public void start(boolean daemon) throws Exception
      Start this server. Spawns a worker thread to listen for HTTP requests.
      Parameters:
      daemon - a boolean indicating if the thread should be a daemon.
      Throws:
      Exception
    • start

      public void start() throws Exception
      Start this server as a NON-daemon.
      Throws:
      Exception
    • stop

      public void stop()
      Stop this server. Can be called safely if the system is already stopped, or if it was never started. This will interrupt any pending accept().
    • main

      public static void main(String[] args)
      Server process.