IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Service web via wsdl parametre


Sujet :

Réseau/Web Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 59
    Par défaut Service web via wsdl parametre
    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 :
    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()
    je galere depuis hier aprés, si quelqu'un peut m'aider

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    59
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 59
    Par défaut
    bon ba j'ai bien geleré et j'ai trouvé la solution, je post pour ceux à qui sa pourrai 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
     
    from PtSystemServiceImplService_client import *
    from ZSI.client import AUTH,Binding
     
    loc = PtSystemServiceImplServiceLocator()
    url_string="https://localhost:8443/repository/services/PtSystemService"
    print url_string
    url=loc.getPtSystemServiceImplPortAddress()
    print url
     
    upper_class= PtSystemServiceImplServiceSoapBindingSOAP(url)
     
    req = createPs()
    req._arg0="158"
    req._arg1="Test"  
    req._arg2="0"
    buh= upper_class.createPs(req)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [SSIS] [2K5] appel à un service web via une
    Par REMACC1 dans le forum SSIS
    Réponses: 1
    Dernier message: 09/04/2010, 11h57
  2. [LDAP] - connexion à un service web via URL ldap
    Par Mageni dans le forum API standards et tierces
    Réponses: 0
    Dernier message: 15/02/2010, 11h09
  3. appel d'un service web via ajax
    Par majda_afkir dans le forum Services Web
    Réponses: 0
    Dernier message: 20/05/2009, 03h33
  4. Fonctionnement services Web (SOAP/WSDL/UDDI)
    Par CIFQ_Drew dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 08/05/2008, 17h02
  5. [C#] Accéder à un service web via SOAP
    Par LE NEINDRE dans le forum Windows Forms
    Réponses: 5
    Dernier message: 29/05/2006, 18h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo