Hi, all I need a XMLRPC server, which works with database and returns data to the clients. But I can not find any possibility to keep the object state on server between the clients calls.
Here is my code: 1. Server: from SimpleXMLRPCServer import SimpleXMLRPCServer from SimpleXMLRPCServer import SimpleXMLRPCRequestHandler # Restrict to a particular path. class RequestHandler(SimpleXMLRPCRequestHandler): rpc_paths = ('/RPC2',) # Create server server = SimpleXMLRPCServer(("localhost", 8000), requestHandler=RequestHandler) server.register_introspection_functions() class MyClass: def __init__(self, a): self.a = a # and some heavy works which I would like to do once def say(self): return a cl = MyClass(100) def return_my_value(): return cl.say() server.register_function(return_my_value, 'r_v') # Run the server's main loop server.serve_forever() 2. Client: import xmlrpclib s = xmlrpclib.ServerProxy('http://localhost:8000') print s.r_v() When I'm running client I get this error message: de...@myhost ~/sources/study/python $ python rpc_client.py Traceback (most recent call last): File "rpc_client.py", line 4, in <module> print s.r_v() File "/usr/lib/python2.6/xmlrpclib.py", line 1199, in __call__ return self.__send(self.__name, args) File "/usr/lib/python2.6/xmlrpclib.py", line 1489, in __request verbose=self.__verbose File "/usr/lib/python2.6/xmlrpclib.py", line 1253, in request return self._parse_response(h.getfile(), sock) File "/usr/lib/python2.6/xmlrpclib.py", line 1392, in _parse_response return u.close() File "/usr/lib/python2.6/xmlrpclib.py", line 838, in close raise Fault(**self._stack[0]) xmlrpclib.Fault: <Fault 1: "<type 'exceptions.NameError'>:global name 'a' is not defined"> How can I fix it? Is there any possibility to keep the object state between the clients calls? Thanks, Demas
-- http://mail.python.org/mailman/listinfo/python-list