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 :

soaplib suds problème avec fichier wsdl


Sujet :

Réseau/Web Python

  1. #1
    Membre du Club
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Décembre 2008
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 48
    Points : 65
    Points
    65
    Par défaut soaplib suds problème avec fichier wsdl
    Bonjour,

    Je m'essaye actuellement aux web services, et j'ai un problème avec le fichier wsdl.

    Voici le code lancant le serveur (ressemble beaucoup a celui du tuto)

    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
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    import soaplib
     
    from soaplib.core import Application
    from soaplib.core.service import soap
    from soaplib.core.service import DefinitionBase
    from soaplib.core.model.primitive import String, Integer
     
    from soaplib.core.server import wsgi
    from soaplib.core.model.clazz import Array
     
    '''
    This is a simple HelloWorld example to show the basics of writing
    a webservice using soaplib, starting a server, and creating a service
    client.
    '''
     
    class HelloWorldService(DefinitionBase):
        @soap(String, Integer, _returns=Array(String))
        def say_hello(self, name, times):
            '''
            Docstrings for service methods appear as documentation in the wsdl
            <b>what fun</b>
            @param name the name to say hello to
            @param the number of times to say hello
            @return the completed array
            '''
            results = []
            for i in range(0, times):
                results.append('Hello, %s' % name)
            return results
     
        @soap(String,Integer,Integer,_returns=Integer)
        def zoubi(self, names, a, b):
            '''
            Docstrings for service methods appear as documentation in the wsdl
            <b>what fun</b>
            @param name the name to say hello to
            @param the number of times to say hello
            @return the completed array
            '''
            results=(a+b)
            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)
     
            print "listening to http://0.0.0.0:7989"
            print "wsdl is at: http://127.0.0.1:7989/?wsdl"
     
            server = make_server('localhost', 7989, wsgi_application)
            server.serve_forever()
    Et voici le code pour lire le fichier wsdl (avec suds)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    #!/usr/bin/env python
    from suds.client import Client
    import time
    import urllib2
    import sys
    import urllib
     
    url ='http://130.79.10.130/?wsdl
    client=Client(url)
    print client
    Bon jusque la tout va. Le serveur se lance et le fichir wsdl est bien lut.

    Maintenant si j'éteins le serveur, que je rajoute une méthode et que je le rallume. Le fichier wsdl est bien modifié, mais uniquement si je l'ouvre manuellement. (en tapant l'adresse dans un navigateur).

    Lorsque je relance le code appelant suds, il utilise toujours l'ancien wsdl. Et le seul moyen que j'ai trouvé pour le moment pour qu'il prenne en compte le nouveau c'est de changer de port. (ce que je trouve un peu moche)

    Y a t"il un moyen de faire cela plus proprement ?

  2. #2
    Membre éclairé
    Avatar de clavier12AZQSWX
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Avril 2009
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Somme (Picardie)

    Informations professionnelles :
    Activité : Technicien maintenance

    Informations forums :
    Inscription : Avril 2009
    Messages : 1 392
    Points : 863
    Points
    863
    Par défaut
    j'ai vu dans la doc de suds qu'il ya un cache (par défaut 1 jour)...

Discussions similaires

  1. Problème avec fichier .exe
    Par rostomus dans le forum MATLAB
    Réponses: 3
    Dernier message: 28/12/2006, 17h02
  2. [XSL] Problème avec fichier distant
    Par ploxien dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 19/10/2006, 20h24
  3. Problème avec fichier Excel génère erreur
    Par Yanmeunier dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/02/2006, 11h53
  4. [Delphi 3] Problème avec fichier ressource .RES
    Par delphim dans le forum EDI
    Réponses: 2
    Dernier message: 28/06/2005, 18h11
  5. Problème avec fichier texte
    Par jpdelx dans le forum ASP
    Réponses: 7
    Dernier message: 13/11/2003, 13h17

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