Cómo mostrar y outcoming mensaje SOAP entrante para ZSI.ServiceProxy en Python (versión 2.1)?
Pregunta
Hace un par de meses me han hecho la misma pregunta, pero en el contexto de la versión anterior de ZSI ( Cómo mostrar outcoming y el mensaje entrante SOAP para ZSI.ServiceProxy en Python? ). Ahora, en la nueva versión de 2.1 ZSI no hay ningún parámetro tacefile
). He intentado encontrar una documentación para la nueva versión pero faild. ? ¿alguien sabe cómo mostrar los mensajes SOAP generados y recibidos por ZSI 2.1 Gracias de antemano: -)
Solución
Para la depuración he encontrado solución menos interferencia usando Wireshark para rastrear los paquetes TCP. Se ve así:
Otros consejos
he tenido este mismo problema. Mi solución fue modificar el archivo dispatch.py ??que viene con ZSI.
He creado una función de registro (mensaje de registro) para mi aplicación que almacene mensajes SOAP en una base de datos y luego agregó que la función cuando sea necesario. No recuerdo la versión ZSI que estaba usando sin embargo. Usted debe ser capaz de encontrar estas funciones con bastante facilidad en el código sin embargo. I AVE números L aproximadas desde que hice otras ediciones
en el archivo Dispatch.py ??en su directorio site-packages
L156 - registros de las respuestas de SOAP
def _Dispatch(tons-of-args, **kw):
#several lines of code edited here#
#several lines of code edited here#
#several lines of code edited here#
sw = SoapWriter(nsdict=nsdict)
sw.serialize(result, tc)
logmessage( str(sw), 1, kw['request'].get_remote_host() ) #LOGGING HERE
L168 - registros de errores de SOAP
def _ModPythonSendFault(f, **kw):
logmessage( str(f.AsSOAP()), 1, kw['request'].get_remote_host() ) #LOGGING ADDED HERE
_ModPythonSendXML(f.AsSOAP(), 500, **kw)
L277 - Registra solicitudes
def AsHandler(request=None, modules=None, **kw):
'''Dispatch from within ModPython.'''
a = request.read(-1)
logmessage( a, 0, request.get_remote_host() ) #LOGGING ADDED HERE
ps = ParsedSoap(a)
kw['request'] = request
_Dispatch(ps, modules, _ModPythonSendXML, _ModPythonSendFault, **kw)