SimpleJSONRPCServer.py 文件源码

python
阅读 31 收藏 0 点赞 0 评论 0

项目:deb-python-jsonrpclib 作者: openstack 项目源码 文件源码
def _dispatch(self, method, params):
        func = None
        try:
            func = self.funcs[method]
        except KeyError:
            if self.instance is not None:
                if hasattr(self.instance, '_dispatch'):
                    return self.instance._dispatch(method, params)
                else:
                    try:
                        func = SimpleXMLRPCServer.resolve_dotted_attribute(
                            self.instance,
                            method,
                            True
                            )
                    except AttributeError:
                        pass
        if func is not None:
            try:
                if isinstance(params, types.ListType):
                    response = func(*params)
                else:
                    response = func(**params)
                return response
            # except TypeError:
            #     return Fault(-32602, 'Invalid parameters.')
            except:
                err_lines = traceback.format_exc().splitlines()
                trace_string = '%s | %s' % (err_lines[-3], err_lines[-1])
                fault = jsonrpclib.Fault(-32603, 'Server error: %s' %
                                         trace_string)
                return fault
        else:
            return Fault(-32601, 'Method %s not supported.' % method)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号