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

Services Web Discussion :

[VBNET] Recupération balise détail dans WS


Sujet :

Services Web

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut [VBNET] Recupération balise détail dans WS
    Bonjour,
    J'utilise un web service pour effectuer une opération distante.

    En cas d'erreur, je ne parviens pas à récupérer le message détaillé de l'erreur.

    En testant avec SOAPUI, je récupère :
    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
    <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
       <SOAP-ENV:Body>
          <SOAP-ENV:Fault>
             <faultcode>SOAP-ENV:Server</faultcode>
             <faultstring>error</faultstring>
             <MiFault>
                <detail>
                   <error>
                      <errCode>CDDETAIL</errCode>
                      <errMsg>Bla bla erreur</errMsg>
                      <parameter/>
                   </error>
                </detail>
             </MiFault>
          </SOAP-ENV:Fault>
       </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>
    Avec une exception SOAPException je récupère que le libellé "error" alors que je voudrais récupérer le libellé "Bla bla erreur"

    Je ne parviens pas à trouver comment récupérer ce libellé.
    Merci d'avance.

  2. #2
    Invité
    Invité(e)
    Par défaut
    Tu travailles avec WCF ou c'est un web service type ASMX ?

  3. #3
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut
    Bonjour,
    je ne comprends pas la question.
    Quelle est la différence entre les 2 types?

    J'utilise VBNet pour appeler des WebServices distants (que je n'ai pas développé). Ces WebServices sont définis par un .xsd et un .wsdl

    Pour les ajouter, j'ai fais clics droit -> ajouter references web -> j'insère l'adresse du WS et j'ajoute.
    Dans le code, j'importe System.Web.Services.Protocols, et j'utilise le web service comme un objet classique (déclaration puis utilisation des propriété et attributs).

    A priori le Mifault semble ne pas être apprécié par un validateur XML.
    Cette balise pourrait elle être la cause de l'erreur?

    Merci pour votre attention!

  4. #4
    Invité
    Invité(e)
    Par défaut
    vu que tu te bases sur du WSDL donc tu pourras générer un proxy WCF. Pour cela tu ajoutes un service reference et pas un web reference.

    Avec le proxy WCF, s'il y a une erreur tu auras l'erreur dans ton message SOAP qui sera traduit par WCF comme une exception de type FaultException et à partir de ce dernier dans la propriété Message tu auras ce que tu veux.

  5. #5
    Membre averti
    Inscrit en
    Mars 2007
    Messages
    27
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 27
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    Pour cela tu ajoutes un service reference et pas un web reference.
    Pourrais tu juste m'indiquer comment ajouter un service reference (à partir d'un http)?

    Dans les options, je ne vois qu'ajouter une web reference.
    Je suis en DotNet 2005 pour information.

  6. #6
    Nouveau candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Septembre 2011
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Septembre 2011
    Messages : 2
    Par défaut
    bonjour,

    je travaille avec biboup.

    je pense qu'il s'agit du fait qu'il existe une balise Mifault qui englobe la balise Detail.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <MiFault>
                <detail>
                   <error>
                      <errCode>CDDETAIL</errCode>
                      <errMsg>Bla bla erreur</errMsg>
                      <parameter/>
                   </error>
                </detail>
    </MiFault>
    sachant que le protocole SOAP n’intègre pas la balise mifault dans le bloc fault, comment peut on récupérer le sous bloc Detail ? malgré le fait que ce flux ne respecte pas la norme http://schemas.xmlsoap.org/soap/envelope/ et que le fournisseur de ce flux ne peut pas modifier le XML, y'a t il un moyen de contourner dans .NET ce problème pour récupérer les valeurs qui se trouvent dans les balises <errCode> et <errMsg>?

    Merci encore pour votre aide.

    Neuil

Discussions similaires

  1. [HTML] Plusieurs balises <html> dans une seule page???
    Par v4np13 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 02/07/2005, 17h37
  2. [XSL] Balise html dans un XML
    Par Ludo_xml dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 13/06/2005, 13h55
  3. [//TODO] Comment voir les balises TODO dans les problemes?
    Par romain3395 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 06/12/2004, 08h53
  4. balise <img> dans un tableau avec firefox
    Par yannock dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 25/10/2004, 16h44
  5. Balises HTML dans un fichier XML
    Par Bastet79 dans le forum XML/XSL et SOAP
    Réponses: 12
    Dernier message: 04/09/2002, 15h29

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