Mike MacHenry schrieb:
I am having a difficult time understanding why my very simple
CGI-XMLRPC test isn't working. I created a server to export two
functions, the built-in function "pow" and my own identity function
"i". I run a script to call both of them and the "pow" work fine but
the "i" gives me an error that says my XMLRPC server doesn't support
than name. Here is the code for both files and the output:
#!/usr/bin/env python
#This file is /usr/lib/cgi-bin/roundwarerpc.py
from SimpleXMLRPCServer import CGIXMLRPCRequestHandler
def i(x):
return x
server = CGIXMLRPCRequestHandler()
server.register_function(pow)
server.register_function(i)
server.handle_request()
#!/usr/bin/env python
#This file is ~/test.py
import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost/cgi-bin/roundwarerpc.py")
print server.pow(2,3)
print server.i(10)
#This is the STDOUT and STDERR when running ~/test.py
dski...@dskippy-laptop:$ python test.py 8
Traceback (most recent call last):
File "test.py", line 4, in <module>
print server.test(10)
File "/usr/lib/python2.5/xmlrpclib.py", line 1147, in __call__
return self.__send(self.__name, args)
File "/usr/lib/python2.5/xmlrpclib.py", line 1437, in __request
verbose=self.__verbose
File "/usr/lib/python2.5/xmlrpclib.py", line 1201, in request
return self._parse_response(h.getfile(), sock)
File "/usr/lib/python2.5/xmlrpclib.py", line 1340, in _parse_response
return u.close()
File "/usr/lib/python2.5/xmlrpclib.py", line 787, in close
raise Fault(**self._stack[0])
xmlrpclib.Fault: <Fault 1: '<type \'exceptions.Exception\'>:method "i"
is not supported'>
Does anyone know what might be wrong with this?
This works.
---
import threading
from SimpleXMLRPCServer import SimpleXMLRPCServer
def i(x):
return x
server = SimpleXMLRPCServer(('localhost', 10000))
server.register_function(pow)
server.register_function(i)
t = threading.Thread(target=server.serve_forever)
t.setDaemon(True)
t.start()
import xmlrpclib
server = xmlrpclib.ServerProxy("http://localhost:10000")
print server.pow(2,3)
print server.i(10)
---
So maybe i is somehow an instance-variable of CGIXMLRPCRequestHandler.
What happens if you rename it?
Diez
--
http://mail.python.org/mailman/listinfo/python-list