org.apache.ws.util.test.axis
Class NotSoSimpleAxisServer

java.lang.Object
  extended byorg.apache.axis.transport.http.SimpleAxisServer
      extended byorg.apache.ws.util.test.axis.NotSoSimpleAxisServer
All Implemented Interfaces:
java.lang.Runnable

public class NotSoSimpleAxisServer
extends org.apache.axis.transport.http.SimpleAxisServer
implements java.lang.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. TODO: delete any methods that can be safely inherited from superclass

Author:
Ian Springer

Field Summary
static java.io.File DEFAULT_DOC_ROOT_DIR
           
static int DEFAULT_MAX_SESSIONS
           
static int DEFAULT_MAX_THREADS
           
protected static org.apache.commons.logging.Log LOG
           
static int sessionIndex
           
 
Fields inherited from class org.apache.axis.transport.http.SimpleAxisServer
log, MAX_SESSIONS_DEFAULT
 
Constructor Summary
NotSoSimpleAxisServer()
          Create a server with default options.
NotSoSimpleAxisServer(java.io.File docRootDir)
          Create a server with the specified docRoot.
NotSoSimpleAxisServer(java.io.File docRootDir, int maxPoolSize)
          Create a server with the specified docRoot and max threads.
NotSoSimpleAxisServer(java.io.File docRootDir, int maxPoolSize, int maxSessions)
          Create a server with the specified docRoot, max threads, and max sessions.
 
Method Summary
protected  org.apache.axis.session.Session createSession(java.lang.String cooky)
          demand create a session if there is not already one for the string
protected  void finalize()
          stop the server if not already told to.
 org.apache.axis.server.AxisServer getAxisServer()
          demand create an axis server; return an existing one if one exists.
 boolean getDoThreads()
           
 int getMaxSessions()
          get max session count
 org.apache.axis.EngineConfiguration getMyConfig()
           
static org.apache.axis.components.threadpool.ThreadPool getPool()
          get the thread pool
 java.net.ServerSocket getServerSocket()
          Obtain the serverSocket that that SimpleAxisServer is listening on.
protected  boolean isSessionUsed()
           
static void main(java.lang.String[] args)
          Server process.
 void run()
          Accept requests from a given TCP port and send them through the Axis engine for processing.
 void setDoThreads(boolean value)
          turn threading on or off.
 void setMaxSessions(int maxSessions)
          Resize the session map
 void setMyConfig(org.apache.axis.EngineConfiguration myConfig)
           
 void setServerSocket(java.net.ServerSocket serverSocket)
          Set the serverSocket this server should listen on.
 void start()
          Start this server as a NON-daemon.
 void start(boolean daemon)
          Start this server.
 void stop()
          Stop this server.
 
Methods inherited from class java.lang.Object
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

DEFAULT_DOC_ROOT_DIR

public static final java.io.File DEFAULT_DOC_ROOT_DIR

DEFAULT_MAX_THREADS

public static final int DEFAULT_MAX_THREADS
See Also:
Constant Field Values

DEFAULT_MAX_SESSIONS

public static final int DEFAULT_MAX_SESSIONS
See Also:
Constant Field Values

LOG

protected static final org.apache.commons.logging.Log LOG

sessionIndex

public static int sessionIndex
Constructor Detail

NotSoSimpleAxisServer

public NotSoSimpleAxisServer()
Create a server with default options.


NotSoSimpleAxisServer

public NotSoSimpleAxisServer(java.io.File docRootDir)
Create a server with the specified docRoot.


NotSoSimpleAxisServer

public NotSoSimpleAxisServer(java.io.File docRootDir,
                             int maxPoolSize)
Create a server with the specified docRoot and max threads.


NotSoSimpleAxisServer

public NotSoSimpleAxisServer(java.io.File docRootDir,
                             int maxPoolSize,
                             int maxSessions)
Create a server with the specified docRoot, max threads, and max sessions.

Method Detail

getPool

public static org.apache.axis.components.threadpool.ThreadPool getPool()
get the thread pool

Returns:

finalize

protected void finalize()
                 throws java.lang.Throwable
stop the server if not already told to.

Throws:
java.lang.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 org.apache.axis.EngineConfiguration getMyConfig()

setMyConfig

public void setMyConfig(org.apache.axis.EngineConfiguration myConfig)

createSession

protected org.apache.axis.session.Session createSession(java.lang.String cooky)
demand create a session if there is not already one for the string

Parameters:
cooky -
Returns:
a session.

getAxisServer

public org.apache.axis.server.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 java.lang.Runnable

getServerSocket

public java.net.ServerSocket getServerSocket()
Obtain the serverSocket that that SimpleAxisServer is listening on.


setServerSocket

public void setServerSocket(java.net.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 java.lang.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:
java.lang.Exception

start

public void start()
           throws java.lang.Exception
Start this server as a NON-daemon.

Throws:
java.lang.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(java.lang.String[] args)
Server process.



Copyright © 2004-2005 Apache Software Foundation. All Rights Reserved.