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

Vue hybride

dbi000 WEB SERVICES:... 25/02/2010, 11h16
Fbartolo ça a l'air bon tout ça.. un... 25/02/2010, 22h16
Fbartolo testes l'écriture suivante: ... 26/02/2010, 09h20
dbi000 Merci pour tes conseils... 26/02/2010, 10h16
Fbartolo colles y directement un... 26/02/2010, 16h17
Message précédent Message précédent   Message suivant Message suivant
  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.

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