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

C++Builder Discussion :

WEB SERVICES: CX_ST_MATCH_ELEMENT:XSLT exception.System expected element


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Par défaut WEB SERVICES: CX_ST_MATCH_ELEMENT:XSLT exception.System expected element
    Bonjour,

    Mon but est de consommer un WebService SAP dans une application C++.

    Ce WS renvoie simplement un String pour un paramètre donné.

    Ci-dessous, l'interface générée par le WSDL importer.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    __interface INTERFACE_UUID("{84315FF7-92AE-A15F-5A89-3820B28AEAB2}") ZQM_WEB_READMEASURE : public IInvokable
    {
    public:
      virtual char64          ZqmFmMeasuresRead(const int PMeaId) = 0; 
    };

    Et ci-après, l'utilisation du WS.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    /*1*/_di_ZQM_WEB_READMEASURE SAP_WS_ReadMeasure;
    /*2*/SAP_WS_ReadMeasure = GetZQM_WEB_READMEASURE(true, "" , HTTPRIO1);
    /*3*/
    /*4*/lbledt_response->Text = SAP_WS_ReadMeasure->ZqmFmMeasuresRead(StrToInt(lbledt_meaID->Text));
    l'execution de la ligne 4 provoque l'exception suivante:
    CX_ST_MATCH_ELEMENT:XSLT exception.System expected element 'PMeaId'

    Un test de ce WS avec SoapUI est concluant, mais l'erreur est reproduisible par la mise en commentaire ci-dessous:

    <urn:ZqmFmMeasuresRead>
    <!--PMeaId>1</PMeaId-->
    </urn:ZqmFmMeasuresRead>

    J'ai executé le même code avec C++ 2006, 2009 et 2010, avec le même résultat.
    J'ai également essayé plusieurs options d'import de l'outil WSDL importer, y compris le Unwind Literal Params.

    Tout conseil bienvenu!

    DBI

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    ça a l'air bon tout ça..
    un exemple chez moi:

    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
    __interface INTERFACE_UUID("{7E484425-2AEF-7032-7678-433F9EB9FEFB}") IiMyWS : public IInvokable
    {
    public:
      virtual UnicodeString   TestMessage(const UnicodeString aMessage) = 0; 
    };
    typedef DelphiInterface<IiMyWS> _di_IiMyWS;
     
    _di_IiMyWS GetIiMyWS(bool useWSDL=false, AnsiString addr="", THTTPRIO* HTTPRIO=0);
     
     
    };     // NS_IiMyWS
     
    #if !defined(NO_IMPLICIT_NAMESPACE_USE)
    using  namespace NS_IiMyWS;
    #endif
     
     
     
    #endif // IiMyWSH
    et l'appel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    oid __fastcall TForm1::Button1Click(TObject *Sender)
    {
    AnsiString Message = "TATA";
    AnsiString Reponse;
    _di_IiMyWS Test;
     
    //Reponse = Test->TestMessage(Message);
    Reponse = GetIiMyWS()->TestMessage(Message);
    ShowMessage(Reponse);
    }
    vue que tu l'a intégré une fois tests avec useWSDL=false, je ne vois pas...

  3. #3
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    testes l'écriture suivante:

    lbledt_response->Text = GetZQM_WEB_READMEASURE()-> ZqmFmMeasuresRead(StrToInt(lbledt_meaID->Text));
    cela devrait fonctionner

    avec: GetZQM_WEB_READMEASURE(false (si méthodes déja déclarées, "httpxxxx" si dynamique, HTTRIO ... ) si tu veux changer quelque chose sur les paramètres de l'interface.

  4. #4
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Par défaut
    Merci pour tes conseils FBartolo,

    Voici donc le code testé:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbledt_response->Text = GetZQM_WEB_READMEASURE(false, "" , HTTPRIO1)->ZqmFmMeasuresRead(StrToInt(lbledt_meaID->Text));
    Avec la même exception.
    Donc le sujet reste ouvert.
    C'est comme si durant la transformation par XLST, le paramètre PMeaId n'était par reconnu.

  5. #5
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    colles y directement un entier pour voir:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    lbledt_response->Text = GetZQM_WEB_READMEASURE()-> ZqmFmMeasuresRead(10);

  6. #6
    Futur Membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2007
    Messages : 4
    Par défaut
    J'avais commencé par ça, bien sur! Mais c'est similaire.

  7. #7
    Membre chevronné

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    531
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 531
    Par défaut
    si il est accessible de l'extérieur, donnes le WSDL, je veux bien faire des tests...

Discussions similaires

  1. Web Service et les Exceptions
    Par Kagami dans le forum Débuter
    Réponses: 0
    Dernier message: 24/07/2013, 12h19
  2. Réponses: 9
    Dernier message: 02/02/2009, 00h54
  3. [C#2.0] Comment rendre obligatoire un element dans un Web Service
    Par cosmos38240 dans le forum Services Web
    Réponses: 1
    Dernier message: 02/03/2007, 16h27
  4. Spring remoting / Web services / Exceptions handling
    Par bidi dans le forum Services Web
    Réponses: 2
    Dernier message: 04/07/2006, 11h07
  5. [vb.net]Gestion des exceptions avec les web services
    Par mvr dans le forum Windows Forms
    Réponses: 2
    Dernier message: 05/12/2005, 22h41

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