我使用ZSI从WSDL为SOAP服务生成了一组Python类。我有另一个Python模块,它使用这些生成的类调用SOAP服务。不幸的是,代码在运行时一直抛出带有以下错误消息的EvaluateException
:
maxOccurs无界,期望,
不幸的是,我既不是SOAP专家,也不是ZSI专家,我甚至不知道这个错误意味着什么。有谁知道它试图描述什么问题,以及我如何解决(或至少调试)这个问题?这个信息对我来说没有多大意义。
EvaluateException
中的确切错误消息是
pyobj (
http://Think/XmlWebServices/
,customer_data),一个"_customer_address_data":maxOccurs无界,期望一个,
如果这有帮助,尽管该错误消息包含一些特定于我正在调试的生成类的字符串。
发布于 2013-08-10 12:11:17
您肯定是以错误的方式使用生成的类/类型。正如消息指出"_customer_address_data“需要一个序列一样,它毕竟是无限的。由于您没有显示WSDL文件或生成的calss,我猜您传递的值数据类型错误。我建议您更改ZSI中的TCcompound.py文件以打印数据,因为它将类似于以下内容(在您的ZSI版本中找到"def“):
whatTC = what
if whatTC.maxOccurs > 1 and v is not None:
if type(v) not in _seqtypes:
raise EvaluateException('pyobj (%s,%s), aname "%s": maxOccurs %s, expecting a %s got %s instead' %(
self.nspname,self.pname,what.aname,whatTC.maxOccurs,_seqtypes, type(v)),
sw.Backtrace(elt))
再来一次看看发生了什么。
https://stackoverflow.com/questions/18050036
复制相似问题