Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2229 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Créer une exception Soap

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Créer une exception Soap

n°2017643
flexx35
Posté le 18-08-2010 à 12:03:32  profilanswer
 

Bonjour
 
Je développe une appli de test qui va servir à simuler le comportement d'un service distant (S1). Les échanges se font par web service.
J'ai donc le WSDL de mon service distant S1 qui décrit le format des Request, des Response et des Exceptions qui peuvent transiter.
A partir de ça j'ai pu développer mon simulateur et ça fonctionne bien.
 
Cependant, le service distant S1 n'est pas accédé directement, les échanges passe par une appli proxy (P1) qui se charge de faire transiter les requêtes et les réponses.
Le problème c'est que ce proxy P1 peut lui aussi retourner des erreurs en cas d'erreur de connexion à S1 par exemple.
Ce sont ces erreurs que je n'arrive pas à simuler.
 
Voici le format de l'erreur que je dois recréer en plus des erreurs de S1 décrites dans le WSDL :
 

Code :
  1. <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/">
  2.    <env:Header>
  3.       <t:trackingHeader xmlns:t="http://............." xmlns:date="http://exslt.org/dates-and-times">
  4.          <t:requestId>ebb8030e-e634-478e-b40d-d47870e2a39e</t:requestId>
  5.          <t:timestamp>2010-07-28T09:53:38+02:00</t:timestamp>
  6.       </t:trackingHeader>
  7.    </env:Header>
  8.    <env:Body>
  9.       <env:Fault xmlns:ns="http://...........">
  10.          <faultcode>Mon code</faultcode>
  11.          <faultstring>Ma string</faultstring>
  12.          <detail>
  13.             <reason>Ma raison</reason>
  14.          </detail>
  15.       </env:Fault>
  16.    </env:Body>
  17. </env:Envelope>


 
Comment faire pour créer ce genre d'exception ?
J'ai tenté de créer une AxisFault de la manière suivante :
 

Code :
  1. AxisFault fault = new AxisFault("mon message" );
  2. fault.setFaultCodeAsString("Mon code" );
  3. fault.setFaultDetailString("Mes détails" );


 
mais voici ce que j'obtiens en testant avec SoapUI :
 

Code :
  1. <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  2.    <soapenv:Body>
  3.       <soapenv:Fault>
  4.          <faultcode>soapenv:Server.userException</faultcode>
  5.          <faultstring>java.rmi.RemoteException: mon message</faultstring>
  6.          <detail>
  7.             <ns1:hostname xmlns:ns1="http://xml.apache.org/axis/">I20080682</ns1:hostname>
  8.          </detail>
  9.       </soapenv:Fault>
  10.    </soapenv:Body>
  11. </soapenv:Envelope>


 
On voit que le faultCode et le faultString ne sont pas correct. Faut-il plutôt hériter de AxisFault ? Quelles méthodes sont à redéfinir dans ce cas ?
Je ne sais pas non plus comment renseigner la balise "detail" pour lui ajouter une "reason".
 
Merci d'avance pour votre aide.
 
 
Pour info, voici le format des erreurs retournées par S1 (qui fonctionne bien car l'exception "monException" de la balise detail est décrite dans le WSDL) :
 

Code :
  1. <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
  2.    <soap:Body>
  3.       <soap:Fault>
  4.          <faultcode>soap:Server</faultcode>
  5.          <faultstring>code05</faultstring>
  6.          <detail>
  7.             <ns3:monException xmlns="http://...../types" xmlns:ns2="http://..../G1" xmlns:ns3="http://..../G1/fault">
  8.                <ns3:message>Erreur de format du champ</ns3:message>
  9.             </ns3:monException>
  10.          </detail>
  11.       </soap:Fault>
  12.    </soap:Body>
  13. </soap:Envelope>

mood
Publicité
Posté le 18-08-2010 à 12:03:32  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Créer une exception Soap

 

Sujets relatifs
cherche à créer page géolocalisation collaborativeStruts : Exception creating bean of class
[PHP-SOAP] Problème de choiceConvertir du code qui utilise wsdlDriver pour Savon ou Handsoap (SOAP)
Quelles solutions pour créer un Blog ProCréer un widget : iframe + javascript, comment fait on ?
[fixed]Problème avec Zend_Soap_ServerJoomla/ pour chaque site à créer il faut réinstaller sur le serveur ?
comment créer matrice de projectionprogramme pour créer organigramme
Plus de sujets relatifs à : Créer une exception Soap


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR