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

Web & réseau Delphi Discussion :

[d6][expert WSDL] problème d'espace de nom.


Sujet :

Web & réseau Delphi

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Points : 16
    Points
    16
    Par défaut [d6][expert WSDL] problème d'espace de nom.
    Bonjour.

    J'ai une question plus qu'un problème, en fait...
    Voilà, j'ai créé un Service Web en DotNet, et je me suis attaqué au client avec Delphi 6. J'ai donc utilisé l'expert WSDL pour générer les classe delphis necessaires, et fait un petit programme test.

    Mais, ça a planté. Apres un peu de recherche, je me suis rendu compte que c'est l'apel au web service qui n'etait pas bon. J'ai intercepté le message SOAP envoyé par Delphi à mon web service, et l'ai comparé à un message envoyé par infopath (qui fonctionne, lui, très bien)

    voilà ce que ça donne :

    en DELPHI :

    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
    POST /WSOffice/Service1.asmx HTTP/1.1
    Cache-Control: no-cache
    Connection: Keep-Alive
    Content-Length: 9120
    Content-Type: text/xml
    Accept: text/xml
    Host: localhost
    User-Agent: Borland SOAP 1.1
    SOAPAction: "http://tempuri.org/AppelServeur"
     
    <?xml version="1.0"?>
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
     xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
      <SOAP-ENV:Body>
        <AppelServeur xmlns="http://tempuri.org/">
          <data>
            <client>
              ...
            </client>
            <environement>
              ...
            </environement>
            <fichiers>
              <fichier>
                ...
              </fichier>
            </fichiers>
          </data>
        </AppelServeur>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>

    Infopath :

    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
    POST /WSOffice/Service1.asmx HTTP/1.1
    Cache-Control: no-cache
    Connection: Keep-Alive
    Content-Length: 9542
    Content-Type: text/xml; charset="UTF-8"
    Host: localhost
    User-Agent: SOAP Toolkit 3.0
    SOAPAction: "http://tempuri.org/AppelServeur"
     
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <SOAP-ENV:Envelope xmlns:SOAPSDK1="http://www.w3.org/2001/XMLSchema" 
     xmlns:SOAPSDK2="http://www.w3.org/2001/XMLSchema-instance" 
     xmlns:SOAPSDK3="http://schemas.xmlsoap.org/soap/encoding/" 
     xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
      <SOAP-ENV:Body>
        <tns:AppelServeur xmlns:tns="http://tempuri.org/">
          <s1:data xmlns:s1="http://www.monentreprise.fr/serveur/client">
            <s1:client>
              ...
            </s1:client>
            <s1:environement>
              ...
            </s1:environement>
            <s1:fichiers>
              <s1:fichier>
                ...
              </s1:fichier>
            </s1:fichiers>
          </s1:data>
        </tns:AppelServeur>
      </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Comme vous pouvez le constater, la différence majeure se situe au niveau de data, avec, en delphi, aucun namespace, et avec infopath, le namespace correcte qu'attends le service web.

    Ce qui explique pourquoi le service web ne comprend pas le message envoyé, et génére une exception dont j'ai oublié le type.

    pourtant, dans les classes gégénére, delphi a pris en compte les espaces de nommage. Alors, je ne comprends pas où est la faute. Comment peut on demander à Delphi d'utiliser les espaces de nom ? quelqu'un a une idée ?


    En attendant, j'ai effacé tout les espaces de nom coté web service, et du coup, lui et Delphi se comprennent. Je ne trouve pas ça génial, puisque du côté serveur également, les classes sont générés automatiquement à partir de schémas xml. Ce qui veux dire que si un jour il y a une modification dans le schéma, non seulement, il faudra régénérer les classes serveur, mais aller les tripatouiler à la main. Puis, générer les classes coté client Delphi.

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    13
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 13
    Points : 16
    Points
    16
    Par défaut
    aucune idée ? aucune suggestion ? aucune expérience dans le domaine ?

    Je sais que c'est pas vraiment un problème parceque j'ai trouvé une solution, mais je continue à chercher par curiosité ? personne n'a eu le truc avant ? y'a pas le meme problème avec les versions suivantes de Delphi ? Ca interesse du monde ou bien ?

Discussions similaires

  1. Problème espaces dans nom de fichier
    Par Mygush dans le forum Général Java
    Réponses: 9
    Dernier message: 31/10/2008, 12h21
  2. Problème d'espace dans nom de dossier.
    Par Snooky68 dans le forum Général Python
    Réponses: 11
    Dernier message: 29/08/2008, 14h55
  3. Réponses: 1
    Dernier message: 04/06/2008, 17h19
  4. Réponses: 2
    Dernier message: 27/07/2007, 19h22
  5. [XSL] problème avec copy espace de nom
    Par luta dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 11/10/2005, 15h18

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