'Invoke a json RPC call from a decoded json request.
:param request: a decoded json_request
:return: a dictionary with keys id, result, err and err_traceback'

def dispatchRequest(self, request):

    results = self.blank_result_dict()
    try:
        results['id'] = self._getRequestId(request)
        methName = request['method']
        args = request['params']
    except KeyError:
        raise BadServiceRequest(request)
    try:
        meth = self.findServiceEndpoint(methName)
        results['result'] = self.invokeServiceEndpoint(meth, args)
    except Exception as err:
        results['err_traceback'] = traceback.format_exc()
        results['err'] = err
    return results
