Précédent   Forum des professionnels en informatique > PHP > Langage
Langage Forum sur le langage PHP, la POO, les conventions, la sécurité, etc. Avant de poster : FAQ Langage, toutes les FAQ PHP, cours langage et sources PHP
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/10/2011, 17h13   #1
Invité régulier
 
Homme
Développeur informatique
Inscription : mars 2009
Messages : 41
Détails du profil
Informations personnelles :
Sexe : Homme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeur informatique

Informations forums :
Inscription : mars 2009
Messages : 41
Points : 6
Points : 6
Par défaut erreur custom dans un soapfault

Bonjour,

nous sommes actuellement en train d'implémenter des services web que nous exposerons sur notre application et nous devons gérer des erreurs techniques et fonctionnelles.

En l'état actuel, notre retour du service web se présente comme ceci:

Code :
1
2
3
4
5
6
7
8
9
10
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>010</faultcode>
         <faultstring>Commande 0 inconnue</faultstring>
         <faultactor/>
         <detail>010</detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

avec un appel comme celui-ci
Code :
throw new SoapFault($code, $message,"", $code ,"ErrTechMajEtapeCommandeMsg");

En créant un mock du retour en cas d'erreur technique à partir du WSDL nous devrions obtenir le flux suivant:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:root="http://www.orange.com/WF/MajWorkflow/v1/root">
  <soapenv:Body>
    <soapenv:Fault>
      <faultcode></faultcode>
      <faultstring xml:lang="?">?</faultstring>
      <!--Optional:-->
      <faultactor>?</faultactor>
      <!--Optional:-->
      <detail>
        <root:ErrTechMajEtapeCommande>
          <Fault>
            <code>?</code>
          </Fault>
        </root:ErrTechMajEtapeCommande>
        <!--You may enter ANY elements at this point-->
      </detail>
    </soapenv:Fault>
  </soapenv:Body>
</soapenv:Envelope>

Comme vous avez pu le constater, il nous manque toutes les informations contenues dans la balise detail.
Malgré nos recherches, nous n'avons pas trouvé comment obtenir le même résultat que dans le mock à partir du soapfault de base.

En grattant un peu, j'ai pu voir que le 4ème paramètre detail, celui qui nous intéresse, peut utiliser autre chose qu'une chaine de caractère.
Avec un tableau comme celui-ci :

dans le detail, on obtient le retour suivant:

Code :
1
2
3
4
5
6
<detail>
     <item>
          <key>code</key>
          <value>010</value>
     </item>
</detail>
Merci d'avance de vos réponses si vous avez des informations sur la façon de procéder.
hadesjack est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h42.


 
 
 
 
Partenaires

Hébergement Web