I'm attempting to run the soaplib Hello World program:
import soaplib
from soaplib.core.service import rpc, DefinitionBase
from soaplib.core.model.primitive import String, Integer
from soaplib.core.server import wsgi
from soaplib.core.model.clazz import Array
from soaplib.core.service import soap
class HelloWorldService(DefinitionBase):
@soap(String,Integer,_returns=Array(String))
def say_hello(self,name,times):
results = []
for i in range(0,times):
results.append('Hello, %s'%name)
import pdb; pdb.set_trace()
return results
if __name__=='__main__':
try:
from wsgiref.simple_server import make_server
soap_application = soaplib.core.Application([HelloWorldService], 'tns')
wsgi_application = wsgi.Application(soap_application)
server = make_server('localhost', 7789, wsgi_application)
server.serve_forever()
except ImportError:
print "Error: example server code requires Python >= 2.5"
I was having problems connecting to the service, both using a browser and a simple suds client. I used the code from the top answer here to get a list of the methods of my little webservice, as well as they're parameters and types. The result I got wasn't particularly encouraging:
say_hello(None: say_hello)
So it appears that the reason that I was unable to call the function properly is that it's parameters and types do not appear to register: However, as far as I can tell this should not be the case. I'm particularly dumbfounded as this is the hello world program presented on the soaplib website.
I've searched both here and elsewhere, but I don't seem to find a similar problem anywhere. Any thoughts?
I've tried the soaplib "Hello world" example. It works if you add
from soaplib.core.service import soapas you did.I've installed both
soaplibandsudsusingpip install.It seems
soaplibwas refactored torpclibwhich was replaced byspyne. It doesn't provide confidence in the project.