几个月前,我问了同样的问题,但是在旧版ZSI(How to display outcoming and incoming SOAP message for ZSI.ServiceProxy in Python?)的背景下。现在,在新版本的ZSI 2.1中没有tacefile
参数)。我试图找到新版本的文档,但我发现了。 有谁知道如何显示ZSI 2.1生成和接收的SOAP消息?提前谢谢: - )
答案 0 :(得分:3)
对于调试,我发现使用wireshark跟踪TCP包的干扰解决方案较少。它看起来像是:
答案 1 :(得分:1)
我有同样的问题。我的解决方法是修改ZSI附带的dispatch.py文件。
我为我的应用程序创建了一个日志记录功能(logmessage),它将SOAP消息存储到数据库中,然后在必要时添加该功能。我不记得我正在使用的ZSI版本。您应该能够在代码中轻松找到这些函数。自从我做了其他编辑以来,我大致得出了L数字
在site-packages目录中的Dispatch.py文件中
L156 - 记录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 - 记录SOAP错误
def _ModPythonSendFault(f, **kw):
logmessage( str(f.AsSOAP()), 1, kw['request'].get_remote_host() ) #LOGGING ADDED HERE
_ModPythonSendXML(f.AsSOAP(), 500, **kw)
L277 - 记录请求
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)