Bonjour,
je créé un client en python qui consomme un service web via un wsdl qui genere l'interface de mes methodes.
j'ai 2 methode, une qui liste des string dans une bd, et une seconde qui peut ajouter des valeur. ( listPs et createPs)
l'appel de list est ok, je recupere le message soap
mais la deuxieme je bataille pour lui fournir des données en argument, pour lui setter les champs (equivalent java).
voila ma classe interface:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 class createPs_Def(ZSI.TCcompound.ComplexType, TypeDefinition): schema = "http://service.repository.codac.iter.org/" type = (schema, "createPs") def __init__(self, pname, ofwhat=(), attributes=None, extend=False, restrict=False, **kw): ns = ns0.createPs_Def.schema TClist = [ZSI.TC.String(pname="arg0", aname="_arg0", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="arg1", aname="_arg1", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded")), ZSI.TC.String(pname="arg2", aname="_arg2", minOccurs=0, maxOccurs=1, nillable=False, typed=False, encoded=kw.get("encoded"))] self.attribute_typecode_dict = attributes or {} if extend: TClist += ofwhat if restrict: TClist = ofwhat ZSI.TCcompound.ComplexType.__init__(self, None, TClist, pname=pname, inorder=0, **kw) class Holder: typecode = self def __init__(self): # pyclass self._arg0 = None self._arg1 = None self._arg2 = None return Holder.__name__ = "createPs_Holder" self.pyclass = Holder
l'appel du web service :
je galere depuis hier aprés, si quelqu'un peut m'aider
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 from ZSI import TC from ZSI.client import Binding from PlantSystemServiceImplService_services import * from PlantSystemServiceImplService_services_types import * import sys import PlantSystemServiceImplService_services import PlantSystemServiceImplService_services_types serverPath ="http://localhost:8080/repository/services/PlantSystemService" mybind = Binding(url=serverPath,port=8080,tracefile=sys.stdout) msg2= PlantSystemServiceImplService_services.createPs() create= ns0.createPs_Def() #setter les arg create.... #msgresp=PlantSystemServiceImplService_services_types.ns0.listPsResponse_Dec() mybind.Send(serverPath,"ns1:createPs", msg2) response= mybind.ReceiveRaw()
Partager