Simple SOAP Servlet
from WebKit.RPCServlet import RPCServlet
import SOAPpy
class SOAPServlet(RPCServlet):
def __init__(self):
RPCServlet.__init__(self)
self.encoding = 'UTF-8'
def respondToPost(self, transaction):
rawData = transaction.request().rawInput(rewind=True).read()
p, header, body, attrs = SOAPpy.parseSOAPRPC(rawData, 1, 1, 1)
methodName, args, kwargs, ns = p._name, p._aslist, p._asdict, p._ns
result = self.call(methodName, *args())
result = {"Result": result}
resp = SOAPpy.buildSOAP(kw={'%sResponse' % methodName: result}, encoding=self.encoding)
self.sendOK('text/xml', resp, transaction, self.encoding)
Servlet Example
class soap(SOAPServlet):
def exposedMethods(self): return ['hello']
def hello(self, name):
return "Hello %s" % name
Working example
>>> import SOAPpy
>>> server = SOAPpy.SOAPProxy("http://localhost/soap")
>>> print server.hello('whitekid')
Hello whitekid
>>>
-- whitekid