org.apache.axis.transport.http

Class SimpleAxisServer

Implemented Interfaces:
Runnable

public class SimpleAxisServer
extends java.lang.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.

Authors:
Sam Ruby (ruby@us.ibm.com)
Rob Jellinghaus (robj@unrealities.com)
Alireza Taherkordi (a_taherkordi@users.sourceforge.net)

Field Summary

static int
MAX_SESSIONS_DEFAULT
protected static Log
log
static int
sessionIndex

Constructor Summary

SimpleAxisServer()
create a server with the default threads and sessions.
SimpleAxisServer(int maxPoolSize)
Create a server with a configurable pool side; sessions set to the default limit
SimpleAxisServer(int maxPoolSize, int maxSessions)
Constructor

Method Summary

protected Session
createSession(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.
AxisServer
getAxisServer()
demand create an axis server; return an existing one if one exists.
boolean
getDoThreads()
int
getMaxSessions()
get max session count
EngineConfiguration
getMyConfig()
static ThreadPool
getPool()
get the thread pool
ServerSocket
getServerSocket()
Obtain the serverSocket that that SimpleAxisServer is listening on.
protected boolean
isSessionUsed()
static void
main(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(EngineConfiguration myConfig)
void
setServerSocket(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.

Field Details

MAX_SESSIONS_DEFAULT

public static final int MAX_SESSIONS_DEFAULT

Field Value:
100


log

protected static Log log


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

createSession

protected Session createSession(String cooky)
demand create a session if there is not already one for the string

Parameters:
cooky -

Returns:
a session.


finalize

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


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:


getDoThreads

public boolean getDoThreads()


getMaxSessions

public int getMaxSessions()
get max session count

Returns:


getMyConfig

public EngineConfiguration getMyConfig()


getPool

public static ThreadPool getPool()
get the thread pool

Returns:


getServerSocket

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


isSessionUsed

protected boolean isSessionUsed()


main

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


run

public void run()
Accept requests from a given TCP port and send them through the Axis engine for processing.


setDoThreads

public void setDoThreads(boolean value)
turn threading on or off. This sets a static value

Parameters:
value -


setMaxSessions

public void setMaxSessions(int maxSessions)
Resize the session map

Parameters:
maxSessions - maximum sessions


setMyConfig

public void setMyConfig(EngineConfiguration myConfig)


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()
            throws Exception
Start this server as a NON-daemon.


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.


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().


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