|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Objectcom.rabbitmq.client.RpcServer
com.rabbitmq.client.StringRpcServer
com.rabbitmq.tools.jsonrpc.JsonRpcServer
public class JsonRpcServer
JSON-RPC Server class.
Given a Java Class, representing an interface, and an
implementation of that interface, JsonRpcServer will reflect on the
class to construct the ServiceDescription, and will route
incoming requests for methods on the interface to the
implementation object while the mainloop() is running.
RpcServer,
JsonRpcClient| Field Summary | |
|---|---|
java.lang.Class |
interfaceClass
The interface this server implements. |
java.lang.Object |
interfaceInstance
The instance backing this server. |
ServiceDescription |
serviceDescription
Holds the JSON-RPC service description for this client. |
| Fields inherited from class com.rabbitmq.client.RpcServer |
|---|
_channel, _consumer, _mainloopRunning, _queueName |
| Constructor Summary | |
|---|---|
JsonRpcServer(Channel channel,
java.lang.Class interfaceClass,
java.lang.Object interfaceInstance)
Construct a server that talks to the outside world using the given channel, and constructs a fresh temporary queue. |
|
JsonRpcServer(Channel channel,
java.lang.String queueName,
java.lang.Class interfaceClass,
java.lang.Object interfaceInstance)
Construct a server that talks to the outside world using the given channel and queue name. |
|
| Method Summary | |
|---|---|
java.lang.String |
doCall(java.lang.String requestBody)
Runs a single JSON-RPC request. |
static java.lang.String |
errorResponse(java.lang.Object id,
int code,
java.lang.String message,
java.lang.Object errorArg)
Construct and encode a JSON-RPC error response for the request ID given, using the code, message, and possible (JSON-encodable) argument passed in. |
ServiceDescription |
getServiceDescription()
Public API - gets the service description record that this service built from interfaceClass at construction time. |
java.lang.String |
handleStringCall(java.lang.String requestBody,
AMQP.BasicProperties replyProperties)
Override our superclass' method, dispatching to doCall. |
java.lang.reflect.Method |
matchingMethod(java.lang.String methodName,
java.lang.Object[] params)
Retrieves the best matching method for the given method name and parameters. |
static java.lang.String |
response(java.lang.Object id,
java.lang.String label,
java.lang.Object value)
Private API - used by errorResponse and resultResponse. |
static java.lang.String |
resultResponse(java.lang.Object id,
java.lang.Object result)
Construct and encode a JSON-RPC success response for the request ID given, using the result value passed in. |
| Methods inherited from class com.rabbitmq.client.StringRpcServer |
|---|
handleCall, handleCast, handleStringCall, handleStringCast |
| Methods inherited from class com.rabbitmq.client.RpcServer |
|---|
close, getChannel, getQueueName, handleCall, handleCall, handleCast, handleCast, mainloop, processRequest, setupConsumer, terminateMainloop |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Field Detail |
|---|
public ServiceDescription serviceDescription
public java.lang.Class interfaceClass
public java.lang.Object interfaceInstance
| Constructor Detail |
|---|
public JsonRpcServer(Channel channel,
java.lang.Class interfaceClass,
java.lang.Object interfaceInstance)
throws java.io.IOException
channel - AMQP channel to useinterfaceClass - Java interface that this server is exposing to the worldinterfaceInstance - Java instance (of interfaceClass) that is being exposed
java.io.IOException - if something goes wrong during an AMQP operation
public JsonRpcServer(Channel channel,
java.lang.String queueName,
java.lang.Class interfaceClass,
java.lang.Object interfaceInstance)
throws java.io.IOException
channel - AMQP channel to usequeueName - AMQP queue name to listen for requests oninterfaceClass - Java interface that this server is exposing to the worldinterfaceInstance - Java instance (of interfaceClass) that is being exposed
java.io.IOException - if something goes wrong during an AMQP operation| Method Detail |
|---|
public java.lang.String handleStringCall(java.lang.String requestBody,
AMQP.BasicProperties replyProperties)
handleStringCall in class StringRpcServerpublic java.lang.String doCall(java.lang.String requestBody)
requestBody - the JSON-RPC request string (a JSON encoded value)
public java.lang.reflect.Method matchingMethod(java.lang.String methodName,
java.lang.Object[] params)
public static java.lang.String errorResponse(java.lang.Object id,
int code,
java.lang.String message,
java.lang.Object errorArg)
public static java.lang.String resultResponse(java.lang.Object id,
java.lang.Object result)
public static java.lang.String response(java.lang.Object id,
java.lang.String label,
java.lang.Object value)
public ServiceDescription getServiceDescription()
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||