Page 1 sur 1

axiscStubGetSOAPFault renvoie un pointeur sans "SoapFau

Posté : mer. 24 juil. 2019, 09:38:13
par thomas.barberot
Bonjour.

Sur les appels de web service, j'ai implémenté la gestion des "SoapFault" comme ceci :

Déclarations :

Code : Tout sélectionner

       // Gestion des soapFault
     dlFaultPtr        s               *   inz
     dlFaultCode       s             64    inz
     dlFaultString     s            128    inz
     dlFaultActor      s            128    inz
     dlFaultDetail     s            128    inz 
Interception après la réception de la réponse :

Code : Tout sélectionner

          lFaultPtr = axiscStubGetSOAPFault(pHandler);
          if &#40;lFaultPtr <> *null&#41;;
             lFaultCode = %str&#40;axiscSoapFaultGetFaultcode&#40;lFaultPtr&#41;&#41;;
             lFaultString = %str&#40;axiscSoapFaultGetFaultstring&#40;lFaultPtr&#41;&#41;;
             lFaultActor = %str&#40;axiscSoapFaultGetFaultactor&#40;lFaultPtr&#41;&#41;;
             lFaultDetail = %str&#40;axiscSoapFaultGetSimpleFaultDetail&#40;lFaultPtr&#41;&#41;;
          endif;                                                                   
Le code tourne en boucle pour appeler le service. Les 13 premiers appels ne détectent pas de "SoapFault", alors que le 14ème en détecte une. Sauf que :
- Pas de faute dans la réponse (la réponse est identique aux 13 précédentes ( {"statut":"OK","message":"Numéro valide"} )
- L'appel de la procédure "axiscSoapFaultGetFaultcode" plante pour un paramètre manquant (MCH3601 - Pointeur non défini pour position mémoire référencée).

Quelqu'un a-t'il déjà rencontré un problème identique ?

Merci.

(sans sujet)

Posté : mer. 24 juil. 2019, 09:40:32
par nbonnet
Bonjour,

on parle bien de service SOAP appelé ?

Cela ne semble pas possible avec :
{"statut":"OK","message":"Numéro valide"}

(sans sujet)

Posté : mer. 24 juil. 2019, 09:52:59
par thomas.barberot
C'est un service REST qui est appelé... Du coup, pas de SoapFault possible, c'est ça ?

(sans sujet)

Posté : mer. 24 juil. 2019, 10:05:58
par nbonnet
Effectivement : SOAPFault définie une erreur pour un service SOAP uniquement

Cf la norme : https://www.w3.org/TR/soap12/#soapfault

Pour les services REST, il faut commencer par récupérer la réponse et le code HTTP (n'est disponible qu'après avoir lu la réponse). Ensuite cela dépend des services ...

(sans sujet)

Posté : mer. 24 juil. 2019, 10:10:32
par thomas.barberot
Oui, c'est en lisant ta question que je me suis rendu compte de la boulette :oops:
Merci Nath.

(sans sujet)

Posté : mer. 24 juil. 2019, 10:12:05
par thomas.barberot
Question : on peut mettre les sujets en "résolu" ? Je ne trouve pas d'action à ce sujet.

(sans sujet)

Posté : mer. 24 juil. 2019, 10:42:07
par admin
pas avec cette version, navré.

Christian