在用python的xmlrpc时遇到了点问题,把它记录下来
在64位机子上,在传送对象时,出现"OverflowError, int exceeds XML-RPC limits"
解决方法:在/usr/lib64/python2.6/xmlrpc.py里面找到def dump_int(self, value, write):
把if value > MAXINT or value < MAXINT:
raise OverflowError, "int exceeds XML-RPC limits"
这两行注释掉。
注释掉后又碰到了"cannot marshal
在传送的对象里面有self.lock = thread.RLock()这个成员,所以不能解析传送,
解决方法是:
比如这个类为 A, 对象为 a = A()
在传送之前利用delattrr(a, 'lock')
然后在调用rpc的这一端利用setattr(a, 'lock', thread.RLock())这个属性加上