J'ai créé une classe qui intercepte le cycle de demande de demande d'échange de messages SOAP et je voulais enregistrer l'échange de messages. Quel est le meilleur moyen pour que je puisse connecter le message SOAP dans mon fichier journal?
Je ne veux pas qu'il soit jolie imprimé dans mon fichier journal mais je veux juste accéder à et afficher l'enveloppe de la requête et de la réponse à la réponse. P>
J'ai essayé avec ce code: p> mais ne reçoit pas le message requis. P> :: Logging SOAP Message :: oracle.j2ee.ws.saaj.soap.soap11.Message11@715346
3 Réponses :
Ce que vous voyez est la touche de la savon. Vous devrez peut-être rechercher les Javadocs pour voir si vous pouvez obtenir le SOPENENPOPE de SOAPMessage d'Oracle et qui doit contenir le message SOAP entrant / sortant. p>
Edit: Veuillez vérifier Ce pour GetsOaPHeader () et GetsOapoPody () pour déconstruire le message SOAP. Vous devrez peut-être comprendre la même chose pour l'enveloppe de savon de l'oracle. P>
si message code> est le code> SOAPMessage code> puis procédez comme suit:
private void logSOAPMessage(SOAPMessage message){
ByteArrayOutputStream bout = new ByteArrayOutputStream();
message.writeTo(bout);
String msg = bout.toString("UTF-8");
_LOG.info(":: Logging SOAP Message :: " + msg);
}
La réponse de Cratylus est insuffisante lorsque vous ne souhaitez pas enregistrer les pièces jointes de savon.
Voici un moyen de ne connecter que l'enveloppe: p>