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

WinDev Discussion :

mise à jour webservice wd19 (mode isapi) vers wd22 (mode serveur d'application webdev)


Sujet :

WinDev

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut mise à jour webservice wd19 (mode isapi) vers wd22 (mode serveur d'application webdev)
    Bonjour,

    je me permets de vous solliciter car :
    j'ai développé il y a quelques temps déjà un webservice en WinDev 12 (attaqué par une application WinDev qui a été migrée de la version 12 à la 20).
    Depuis, le webservice a été migré sur WinDev 19 mais le mode de génération est toujours "ISAPI".
    Comme ce mode n'est plus géré dans la nouvelle version de WinDev, je voulais donc migrer ce webservice en mode "serveur d'application webdev 22".
    Pas de problème pour générer ce webservice.
    Par contre, une fois installé sur mon serveur (sur lequel j'ai donc installé le serveur d'application webdev 22 pour 10 connexions), serveur qui n'était pas nécessaire ne mode "ISAPI", je rencontre un problème pour utiliser ce webservice dans mon application WinDev (qui, elle, est toujours en WinDev 20 ;(
    En effet, en mode isapi, l'url du serveur était une url en .soap
    http://monserveur/monwebservice/monwebservice.soap

    Avec le webservice en mode "serveur d'application webdev", l'url générée est du type :
    http://monserveur/monwebservice_WEB/...ebservice.awws
    et la description du webservice est :
    http://monserveur/monwebservice_WEB/...bservice.awws…

    Je n'ai aucun problème pour atteindre la description du webservice depuis mon poste de développement.
    Je n'ai aucun problème pour atteindre la page de test : http://monserveur/monwebservice_WEB/awws/index.htm
    Je peux tester le webservice comme ceci.

    A priori, il fonctionne à ceci prêt :
    1) Lorsque je teste une fonction depuis l'index.htm, j'obtient une page blanche :-<
    Pourtant, si je fais afficher la source, j'ai bien mes données.

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?xml version="1.0" encoding="UTF-8"?>
    <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Body><FGGetResponse xmlns="urn:dummy" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <FGGetResult xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:string">
    Nb enreg=1
    NumFacFG DateArrivage DateFacture DateEcheance DateEnreg FOUNUM FouNom TotalHT MNTTVA MontantTTC

    alors que sur le webservice en mode "isapi" j'obtient ceci lisible directement dans le navigateur :

    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?xml version="1.0" encoding="ISO-8859-1"?>
    -<SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    -<SOAP-ENV:Body>
    -<FGGetResponse SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns="urn:dummy">
    <FGGetResult xsi:type="ns2:string" xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/"> Nb enreg=1 NumFacFG DateArrivage DateFacture DateEcheance DateEnreg FOUNUM FouNom TotalHT
    [... le reste de mes données...]
    </FGGetResult
    </FGGetResponse>
    </SOAP-ENV:Body>
    </SOAP-ENV:Envelope>



    En outre,
    2), lorsque j'essaie d'utiliser le webservice dans mon application,
    sans rien changer au code, si ce n'est que tous les paramètres sont maintenant renseignés :
    le soapexecute renvoit faux mais sans code erreur :

    j'ai essayé avec plusieurs url mais rien n'y fait : je n'obtient pas mon résultat.
    http://monserveur/monwebservice_WEB/...ebservice.awws

    voici le code qui exécute l'appel au webservice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SI SOAPExécute(sSOAPUrl,proc,"urn:"+sSOAPUrn) ALORS
    	SResult=SOAPDonneRésultat(SOAPRésultat)
    	SResult=Remplace(SResult,"</"+proc+"Result","")
    SINON
    	SResult=ErreurInfo(errMessage)
    FIN
    RENVOYER SansEspace(SResult)
    le programme passe dans la clause "sinon" mais ErreurInfo(errMessage) ne renvoie rien.


    J'ai modifié le code comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SI SOAPExécute(sSOAPUrl,proc,"urn:"+sSOAPUrn) ALORS
    	SResult=SOAPDonneRésultat(SOAPRésultat)
    	SResult=Remplace(SResult,"</"+proc+"Result","")
    SINON
    	SResult=ErreurInfo(errMessage)+RC+SOAPErreur(SOAPErrMessage)
    FIN
    Et là, j'obtient une erreur de timeout : 22, ERR_TIMEOUT_REQUEST



    Alors je n'avance pas beaucoup...

    J'ai essayé en important le webservice dans mon projet WinDev. Pas de soucis à ce niveau là, il apparaît bien avec les procédures.

    Lorsque j'exécute directement dans le code une fonction du webservice et voici le retour :
    <<
    Erreur dans le décodage de la réponse du Webservice :
    Le document XML n'a pas pu être chargé
    Détail de l'erreur système : Ligne 5, Colonne 2 : Input is not proper
    UTF-8, indicate encoding !
    Bytes: 0xB0 0x20 0x64 0x65
    >>

    Donc je suppose que s'il y a un problème pour décoder le résultat du webservice c'est que déjà, il y a bien un résultat (que je n'arrive pas à récupérer)
    et que probablement, c'est le webservice lui même qui est mal codé, le résultat retourné étant probablement mal "encodé".
    Mon pb est de trouver où...

    Le code n'a pourtant rien de transcendant :

    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
    PROCEDURE MaFonction(Mes paramètres.... )
    [... Déclaration des variables ...]
    	sSourceXML=RC 
    	sSourceXML+="Nb enreg="+nNbEnreg+RC 
     
    	//enregistrement de l'entête
    	sSourceXML+="NumFacFG"+TAB
    	sSourceXML+="DateArrivage"+TAB
    	sSourceXML+="DateFacture"+TAB
     
    	[...]
     
    	sSourceXML+=RC 
     
     [...]
     
     sSourceXML=Remplace(sSourceXML,"Nb enreg="+nNbEnreg+RC,"Nb enreg="+nNbEnregFin+RC)
     
     sRes=SOAPEncodeRésultat(sSourceXML,SOAPTypeChaîne)
     
    RENVOYER sRes

    Merci d'avance pour l'aide que vous pourrez m'apporter.

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2017
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2017
    Messages : 3
    Points : 1
    Points
    1
    Par défaut
    Je crois que je vais devenir chèvre.

    J'ai créé un nouveau webservice de test en version 22.
    Voici le contenu du webservice :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    PROCEDURE Test(sC1 est une chaîne,sC2 est une chaîne)
    sRes est une chaîne=""
    sResEncode est une chaîne=""
    sRes=sC1+" "+sC2
    sResEncode=SOAPEncodeRésultat(sRes,SOAPRésultat)
    RENVOYER sResEncode

    Lorsque je teste la fonction avec la page de test sur le serveur, c'est ok, j'obtient bien le message souhaité :

    Nom : Capture01.PNG
Affichages : 464
Taille : 14,9 Ko

    Nom : Capture02.PNG
Affichages : 467
Taille : 18,1 Ko

    Résultat :
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?xml version="1.0" encoding="UTF-8" ?> 
    - <SOAP-ENV:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    - <SOAP-ENV:Body>
    - <TestResponse xmlns="urn:dummy" SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
     <TestResult xmlns:ns2="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:decimal">A B</TestResult> 
     </TestResponse>
     </SOAP-ENV:Body>
     </SOAP-ENV:Envelope>

    Lorsque j'importe le webservice dans un proget Windev22 vierge :
    le webservice apparaît bien :

    Nom : Capture03.PNG
Affichages : 423
Taille : 3,5 Ko

    Voici le code de mon projet de test en windev22 (on peut difficilement faire plus simple) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    sP1 est une chaîne=""
    sP2 est une chaîne=""
    sSOAPResult est une chaîne=""
    sSOAPResultDecode est une chaîne=""
     
    sP1="A"
    sP2="B"
    sSOAPResult=Test(sP1,sP2)
    sSOAPResultDecode=SOAPDonneRésultat(SOAPRésultat)
    Lorsque je lance le test du projet :
    Erreur à la ligne 8 du traitement Initialisation de test.
    Echec de la récupération de la valeur de retour 'WebServiceProwinWD22_Test_MessageOut' de l'opération.

    ----- Informations techniques -----

    Projet : test

    Appel WL :
    Traitement de 'Initialisation de test', ligne 8, thread 0

    Que s'est-il passé ?
    Echec de la récupération de la valeur de retour 'WebServiceProwinWD22_Test_MessageOut' de l'opération.

    Code erreur : 40056
    Niveau : erreur fatale

    Dump de l'erreur du module 'wd220xml.dll' (22.0.15.0).
    Informations supplémentaires :
    EIT_PILEWL :
    Initialisation de test (), ligne 8
    EIT_DATEHEURE : 17/02/2017 15:31:48
    EIT_TYPE_WDFILE : <4097>
    EIT_IDCODE : <196608>

    Assistance
    Je ne comprends pas quel est le problème.

    C'est pourtant tout simple...
    Et ça ne fonctionne pas.

    Merci d'avance pour votre aide.

Discussions similaires

  1. [9.1] Mise à jour de PostgreSQL 8.3 vers 9.1.3
    Par H4rDBuG dans le forum Installation
    Réponses: 3
    Dernier message: 06/03/2013, 22h44
  2. Mise à jour BO XI 3.1 vers BO XI 3.1 SP5
    Par cragoroth dans le forum Administration-Migration
    Réponses: 1
    Dernier message: 03/07/2012, 10h53
  3. [PEAR][Debian] Mise à jour de 1.9.1 vers 1.9.4
    Par kcin dans le forum Bibliothèques et frameworks
    Réponses: 0
    Dernier message: 25/04/2012, 12h49
  4. Mise à jour non désirée de projet vers .net 4.0
    Par Papy214 dans le forum Visual Studio
    Réponses: 0
    Dernier message: 01/04/2011, 15h46
  5. Mise à jour de 8.1.7 vers 10g
    Par lecharcutierdelinux dans le forum Administration
    Réponses: 1
    Dernier message: 02/05/2007, 16h09

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