ZSI Web Service Call
Stevo
steven.robbins at gmail.com
Mon Jul 2 23:46:59 EDT 2007
Hi There,
I'm looking for an example of a simple SOAP web service call using the
Zolera SOAP Infrastructure library. The web service I am trying to
call contains a method that is supposed to accept a string as a
parameter and output it to a file.
I have tried the following and I am able to create the file on the web
server although the file is empty. Is there additional code required
for this?
from datetime import datetime
from EventsDatabase_services import *
from ZSI.client import *
import sys
def main():
SOAPAction = 'http://tempuri.org/ALU.EventsDatbase/
EventsDatabase/LogEventStringInputTest'
teststring = 'This is a test'
loc = EventsDatabaseLocator()
port = loc.getEventsDatabaseSoap()
req = LogEventStringInputTestSoapIn()
req.input = 'test'
resp = port.LogEventStringInputTest(req)
print resp
##################################################
# EventsDatabase_services.py
# generated by ZSI.generate.wsdl2python
##################################################
from EventsDatabase_services_types import *
import urlparse, types
from ZSI.TCcompound import ComplexType, Struct
from ZSI import client
import ZSI
from ZSI.generate.pyclass import pyclass_type
# Locator
class EventsDatabaseLocator:
EventsDatabaseSoap_address = "http://tipsy/ALU.EventsDatabase/
EventsDatabase.asmx"
def getEventsDatabaseSoapAddress(self):
return EventsDatabaseLocator.EventsDatabaseSoap_address
def getEventsDatabaseSoap(self, url=None, **kw):
return EventsDatabaseSoapSOAP(url or
EventsDatabaseLocator.EventsDatabaseSoap_address, **kw)
# Methods
class EventsDatabaseSoapSOAP:
def __init__(self, url, **kw):
kw.setdefault("readerclass", None)
kw.setdefault("writerclass", None)
# no resource properties
self.binding = client.Binding(url=url, **kw)
# no ws-addressing
# op: LogEventStringInputTest
def LogEventStringInputTest(self, request):
if isinstance(request, LogEventStringInputTestSoapIn) is
False:
raise TypeError, "%s incorrect request type" %
(request.__class__)
kw = {}
# no input wsaction
self.binding.Send(None, None, request, soapaction="http://
tempuri.org/ALU.EventsDatbase/EventsDatabase/LogEventStringInputTest",
**kw)
# no output wsaction
response =
self.binding.Receive(LogEventStringInputTestSoapOut.typecode)
return response
LogEventStringInputTestSoapIn =
ns0.LogEventStringInputTest_Dec().pyclass
LogEventStringInputTestSoapOut =
ns0.LogEventStringInputTestResponse_Dec().pyclass
##################################################
##################################################
import ZSI
import ZSI.TCcompound
from ZSI.schema import LocalElementDeclaration, ElementDeclaration,
TypeDefinition, GTD, GED
from ZSI.generate.pyclass import pyclass_type
##############################
# targetNamespace
# http://tempuri.org/ALU.EventsDatbase/EventsDatabase
##############################
class ns0:
targetNamespace = "http://tempuri.org/ALU.EventsDatbase/
EventsDatabase"
class LogEventStringInputTest_Dec(ZSI.TCcompound.ComplexType,
ElementDeclaration):
literal = "LogEventStringInputTest"
schema = "http://tempuri.org/ALU.EventsDatbase/EventsDatabase"
def __init__(self, **kw):
ns = ns0.LogEventStringInputTest_Dec.schema
TClist = [ZSI.TC.String(pname=(ns,"input"),
aname="_input", minOccurs=0, maxOccurs=1, nillable=False, typed=False,
encoded=kw.get("encoded"))]
kw["pname"] = ("http://tempuri.org/ALU.EventsDatbase/
EventsDatabase","LogEventStringInputTest")
kw["aname"] = "_LogEventStringInputTest"
self.attribute_typecode_dict = {}
ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
class Holder:
__metaclass__ = pyclass_type
typecode = self
def __init__(self):
# pyclass
self._input = None
return
Holder.__name__ = "LogEventStringInputTest_Holder"
self.pyclass = Holder
class
LogEventStringInputTestResponse_Dec(ZSI.TCcompound.ComplexType,
ElementDeclaration):
literal = "LogEventStringInputTestResponse"
schema = "http://tempuri.org/ALU.EventsDatbase/EventsDatabase"
def __init__(self, **kw):
ns = ns0.LogEventStringInputTestResponse_Dec.schema
TClist =
[ZSI.TC.String(pname=(ns,"LogEventStringInputTestResult"),
aname="_LogEventStringInputTestResult", minOccurs=0, maxOccurs=1,
nillable=False, typed=False, encoded=kw.get("encoded"))]
kw["pname"] = ("http://tempuri.org/ALU.EventsDatbase/
EventsDatabase","LogEventStringInputTestResponse")
kw["aname"] = "_LogEventStringInputTestResponse"
self.attribute_typecode_dict = {}
ZSI.TCcompound.ComplexType.__init__(self,None,TClist,inorder=0,**kw)
class Holder:
__metaclass__ = pyclass_type
typecode = self
def __init__(self):
# pyclass
self._LogEventStringInputTestResult = None
return
Holder.__name__ = "LogEventStringInputTestResponse_Holder"
self.pyclass = Holder
class string_Dec(ZSI.TC.String, ElementDeclaration):
literal = "string"
schema = "http://tempuri.org/ALU.EventsDatbase/EventsDatabase"
def __init__(self, **kw):
kw["pname"] = ("http://tempuri.org/ALU.EventsDatbase/
EventsDatabase","string")
kw["aname"] = "_string"
class IHolder(str): typecode=self
kw["pyclass"] = IHolder
IHolder.__name__ = "_string_immutable_holder"
ZSI.TC.String.__init__(self, **kw)
# end class ns0 (tns: http://tempuri.org/ALU.EventsDatbase/EventsDatabase)
More information about the Python-list
mailing list