I had a soap server built in python with SOAPpy and I wanted to use it from an ASP.Net application using the visual studio 2005 built in web services tool. I encountered several problems:
- Visual Studio wants to read the WSDL from the soap server;
- Namespaces matter.
For the WSDL problem you have just to define a function like:
def wsdl(self):
wsdl_text = ''
f = open('service.wsdl', 'r')
for l in f.readlines():
wsdl_text += l f.close()
return wsdl_text
for the namespece part, suppose you ns is 'http://localhost/MyServer/2007/09/Services/MyService/01', you server will be:
class MySoapServer(SOAPServer):
def __init__(self, ip = "localhost", port = 8080):
from SOAPpy import NS
# visual studio want's the soap envelope defined as 's'
NS.ENV_T = "s"
self.ns = 'http://localhost/MyServer/2007/09/Services/MyService/01'
SOAPServer.__init__(self, (ip, port))
self.registerFunction('wsdl')
self.registerFunction('soap_myFunction', 'myFunction', namespace = self.ns)
In this way Visual Studio will be able to correctly call your exposed methods. Later we will see how to let Visual Studio correctly understand your results.
1 comment:
So where is Part 2?
Post a Comment