[ filmil @ 12.08.2004. 20:48 ] @
Pozdrav. Imam naoko čudan problem sa XMLRPC-om. Posmatram dva programa: server i klijent: server: Code: #! /bin/env python from SimpleXMLRPCServer import SimpleXMLRPCServer class OperationsTest: def add(self, username, password): print username, password print "Start" server = SimpleXMLRPCServer(("localhost", 10800)) server.register_introspection_functions() server.register_instance(OperationsTest()) server.serve_forever() klijent: Code: #! /bin/env python import xmlrpclib server = xmlrpclib.ServerProxy("[url=http://localhost:10800]http://localhost:10800"[/url], allow_none=True) print server try: print server.system.listMethods() server.add("User", "Password") except xmlrpclib.Fault, v: print "Error: ", v Pokrenem prvo server, a zatim klijenta. Iako se metod add izvrši na serveru, dobijam sledeću poruku: Code: $ python testclient.py ServerProxy for localhost:10800/RPC2 ['add', 'delete', 'edit', 'get', 'system.listMethods', 'system.methodHelp', 'system.methodSignature'] Error: Fault 1: 'exceptions.TypeError:cannot marshal None unless allow_none is enabled' filip@cow:~/work $ Koliko vidim, dobijam jasnu poruku da None ne može da se serijalizuje osim ako to ne tražim. Ali, gde sam ja to tražio da se serijalizuje None? Drugo, zar nisam od ServerProxy-ja tražio upravo allow_none=True? Da li je možda problem što sam metode spakovao u klasu, da li ima nešto što se implicitno (ne) prenosi? Zahvalan na savetu, f |