org.apache.xmlrpc

Class XmlRpcServer


public class XmlRpcServer
extends java.lang.Object

A multithreaded, reusable XML-RPC server object. The name may be misleading because this does not open any server sockets. Instead it is fed by passing an XML-RPC input stream to the execute method. If you want to open a HTTP listener, use the WebServer class instead.
Authors:
Hannes Wallnoefer
Daniel L. Rall
Andrew Evers

Field Summary

private DefaultHandlerMapping
handlerMapping
We want the $default handler to always be available.
private int
maxThreads
The maximum number of threads which can be used concurrently, by defaut use the one defined in XmlRpc
private int
nbrWorkers
private Stack
pool

Constructor Summary

XmlRpcServer()
Construct a new XML-RPC server.

Method Summary

void
addHandler(String handlerName, Object handler)
protected XmlRpcWorker
createWorker()
byte[]
execute(InputStream is)
Parse the request and execute the handler method, if one is found.
byte[]
execute(InputStream is, String user, String password)
Parse the request and execute the handler method, if one is found.
byte[]
execute(InputStream is, XmlRpcContext context)
Parse the request and execute the handler method, if one is found.
XmlRpcHandlerMapping
getHandlerMapping()
Return the current XmlRpcHandlerMapping.
int
getMaxThreads()
Get the MaxThreads for this Server
protected XmlRpcWorker
getWorker()
Hands out pooled workers.
void
removeHandler(String handlerName)
void
setMaxThreads(int maxThreads)
Set the MaxThreads for this Client

Field Details

handlerMapping

private DefaultHandlerMapping handlerMapping
We want the $default handler to always be available.

maxThreads

private int maxThreads
The maximum number of threads which can be used concurrently, by defaut use the one defined in XmlRpc

nbrWorkers

private int nbrWorkers

pool

private Stack pool

Constructor Details

XmlRpcServer

public XmlRpcServer()
Construct a new XML-RPC server. You have to register handlers to make it do something useful.

Method Details

addHandler

public void addHandler(String handlerName,
                       Object handler)

createWorker

protected XmlRpcWorker createWorker()

execute

public byte[] execute(InputStream is)
Parse the request and execute the handler method, if one is found. Returns the result as XML. The calling Java code doesn't need to know whether the call was successful or not since this is all packed into the response. No context information is passed.

execute

public byte[] execute(InputStream is,
                      String user,
                      String password)
Parse the request and execute the handler method, if one is found. If the invoked handler is AuthenticatedXmlRpcHandler, use the credentials to authenticate the user. No context information is passed.

execute

public byte[] execute(InputStream is,
                      XmlRpcContext context)
Parse the request and execute the handler method, if one is found. If the invoked handler is AuthenticatedXmlRpcHandler, use the credentials to authenticate the user. Context information is passed to the worker, and may be passed to the request handler.

getHandlerMapping

public XmlRpcHandlerMapping getHandlerMapping()
Return the current XmlRpcHandlerMapping.

getMaxThreads

public int getMaxThreads()
Get the MaxThreads for this Server

getWorker

protected XmlRpcWorker getWorker()
Hands out pooled workers.
Returns:
A worker (never null).

removeHandler

public void removeHandler(String handlerName)

setMaxThreads

public void setMaxThreads(int maxThreads)
Set the MaxThreads for this Client

Copyright B) 1999-2002 Apache Software Foundation. All Rights Reserved.