Class InternalServer
- java.lang.Object
-
- org.astrogrid.samp.xmlrpc.internal.InternalServer
-
- All Implemented Interfaces:
SampXmlRpcServer
- Direct Known Subclasses:
RpcLoggingInternalServer,XmlLoggingInternalServer
public class InternalServer extends java.lang.Object implements SampXmlRpcServer
SampXmlRpcServer implementation without external dependencies. ThereqInfoargument passed to thehandleCallmethod of registeredSampXmlRpcHandlers is the associatedHttpServer.Request.- Since:
- 27 Aug 2008
- Author:
- Mark Taylor
-
-
Constructor Summary
Constructors Constructor Description InternalServer()Constructs a server running with default characteristics.InternalServer(HttpServer httpServer, java.lang.String path)Constructor based on a given HTTP server.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddHandler(SampXmlRpcHandler handler)Adds a handler which can service certain XML-RPC methods.java.net.URLgetEndpoint()Returns the server's endpoint.static byte[]getFaultBytes(java.lang.Throwable error)Turns an exception into an array of bytes giving an XML-RPC methodResponse (fault) document.HttpServergetHttpServer()Returns the HTTP server hosting this XML-RPC server.static byte[]getResultBytes(java.lang.Object result)Turns a SAMP-friendly (string, list, map only) object into an array of bytes giving an XML-RPC methodResponse document.protected HttpServer.ResponsegetXmlRpcResponse(HttpServer.Request request)Returns the HTTP response object given an incoming XML-RPC POST request.protected java.lang.ObjecthandleCall(SampXmlRpcHandler handler, java.lang.String methodName, java.util.List paramList, HttpServer.Request request)Actually passes the XML-RPC method name and parameter list to one of the registered servers for processing.voidremoveHandler(SampXmlRpcHandler handler)Removes a previously-added handler.
-
-
-
Constructor Detail
-
InternalServer
public InternalServer(HttpServer httpServer, java.lang.String path) throws java.io.IOException
Constructor based on a given HTTP server. It is the caller's responsibility to configure and start the HttpServer.- Parameters:
httpServer- server for processing HTTP requestspath- path part of server endpoint (starts with "/");- Throws:
java.io.IOException
-
InternalServer
public InternalServer() throws java.io.IOExceptionConstructs a server running with default characteristics. Currently, the default serverUtilServer.getInstance()is used.- Throws:
java.io.IOException
-
-
Method Detail
-
getEndpoint
public java.net.URL getEndpoint()
Description copied from interface:SampXmlRpcServerReturns the server's endpoint.- Specified by:
getEndpointin interfaceSampXmlRpcServer- Returns:
- URL to which XML-RPC requests are POSTed
-
getHttpServer
public HttpServer getHttpServer()
Returns the HTTP server hosting this XML-RPC server.- Returns:
- http server
-
addHandler
public void addHandler(SampXmlRpcHandler handler)
Description copied from interface:SampXmlRpcServerAdds a handler which can service certain XML-RPC methods.- Specified by:
addHandlerin interfaceSampXmlRpcServer- Parameters:
handler- handler to add
-
removeHandler
public void removeHandler(SampXmlRpcHandler handler)
Description copied from interface:SampXmlRpcServerRemoves a previously-added handler.- Specified by:
removeHandlerin interfaceSampXmlRpcServer- Parameters:
handler- handler to remove
-
getXmlRpcResponse
protected HttpServer.Response getXmlRpcResponse(HttpServer.Request request)
Returns the HTTP response object given an incoming XML-RPC POST request. Any error should be handled by returning a fault-type methodResponse element rather than by throwing an exception.- Parameters:
request- POSTed HTTP request- Returns:
- XML-RPC response (possibly fault)
-
handleCall
protected java.lang.Object handleCall(SampXmlRpcHandler handler, java.lang.String methodName, java.util.List paramList, HttpServer.Request request) throws java.lang.Exception
Actually passes the XML-RPC method name and parameter list to one of the registered servers for processing.- Parameters:
handler- handler which has declared it can handle the named methodmethodName- XML-RPC method nameparamList- list of parameters to XML-RPC callrequest- HTTP request from which this call originated- Throws:
java.lang.Exception
-
getResultBytes
public static byte[] getResultBytes(java.lang.Object result) throws java.io.IOExceptionTurns a SAMP-friendly (string, list, map only) object into an array of bytes giving an XML-RPC methodResponse document.- Parameters:
result- SAMP-friendly object- Returns:
- XML methodResponse document as byte array
- Throws:
java.io.IOException
-
getFaultBytes
public static byte[] getFaultBytes(java.lang.Throwable error) throws java.io.IOExceptionTurns an exception into an array of bytes giving an XML-RPC methodResponse (fault) document.- Parameters:
error- throwable- Returns:
- XML methodResponse document as byte array
- Throws:
java.io.IOException
-
-