printemps & client de service web - Faute de Détails
Comment pourrais-je obtenir la Faute Détail envoyé par un SoapFaultClientException ?
J'utilise un WebServiceTemplate comme indiqué ci-dessous :
WebServiceTemplate ws = new WebServiceTemplate();
ws.setMarshaller(client.getMarshaller());
ws.setUnmarshaller(client.getUnMarshaller());
try {
MyResponse resp = (MyResponse) = ws.marshalSendAndReceive(WS_URI, req);
} catch (SoapFaultClientException e) {
SoapFault fault = e.getSoapFault();
SoapFaultDetail details = e.getSoapFault().getFaultDetail();
//details always NULL ? Bug?
}
Le Service Web de la Faute envoyé semble correct :
<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">
<soapenv:Body>
<soapenv:Fault>
<faultcode>soapenv:Client</faultcode>
<faultstring>Validation error</faultstring>
<faultactor/>
<detail>
<ws:ValidationError xmlns:ws="http://ws.x.y.com">ERR_UNKNOWN</ws:ValidationError>
</detail>
</soapenv:Fault>
</soapenv:Body>
Grâce
Willome
OriginalL'auteur user18714 | 2008-09-19
Vous devez vous connecter pour publier un commentaire.
J'ai aussi eu le problème que getFaultDetail() a retourné null (pour un service web SharePoint). J'ai pu obtenir le détail de l'élément en utilisant une méthode similaire à ceci:
Après cela, vous pouvez appeler getTextContent() sur l'Élément retourné ou ce que vous voulez.
OriginalL'auteur holmis83
Découvrez quel type de réponse HTTP, vous obtenez lors de la réception d'erreur Soap. J'ai eu le même problème lors de l'erreur SOAP réponses à l'aide de HTTP 200 au lieu de HTTP 500. Ensuite, vous obtenez:
Lorsque vous modifiez WebServiceTemplate faute de connexion les paramètres comme ci-dessous:
puis vous pouvez bien attraper SoapFaultClientException
OriginalL'auteur Premek
De la Javadoc la marshalSendAndReceive méthode
il ressemble à la SoapFaultClientException dans le bloc catch ne se produira jamais.
De l'API, il regarde comme le meilleur pari pour déterminer les détails de la faute est à personnaliser Message De Défaut Du Récepteur.
OriginalL'auteur John Meagher
Problème vient de la JAXB Bibliothèques
OriginalL'auteur user18714