我想打电话给在WSDL操作。我不能共享完整的文件,但这里是该文件的一个样本 -
<wsdl:operation name="XXX_XXX_CANCEL"><wsp:Policy><wsp:PolicyReference URI="#OP_XXX_XXX_CANCEL"/></wsp:Policy><wsdl:input message="p1:XXX_Order"/><wsdl:output message="p1:Order_RESP"/></wsdl:operation></wsdl:portType><wsdl:binding name="XXX_XXX_CANCELBinding" type="p1:XXX_XXX_CANCEL"><soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/><wsdl:operation name="XXX_XXX_CANCEL"><soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/><wsdl:input><soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/></wsdl:input><wsdl:output><soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="XXX_XXX_CANCELService"><wsdl:port name="XXX_XXX_CANCELPort" binding="p1:XXX_XXX_CANCELBinding"><soap:address location="x" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/></wsdl:port></wsdl:service></wsdl:definitions>""
如果我这样做python -mzeep xxx.wsdl
在该文件上我看到一个服务和端口,但没有任何操作,并试图打电话给我让service has no operation XXX_XXX_Cancel
服务。
我无法弄清楚为什么发生这种情况。
这可能是在试图解析操作类型/元素发生错误的情况。在这种情况下ZEEP显示警告信息。你有蟒蛇-mzeep的完整输出? (见第几行)
存在与ZEEP包有问题。如果操作使用嵌套元素和正常的元素。它会列出仅是嵌套的那些服务。人们可以使用pdb.set_trace检查并调用目录(client.service)。
它将只列出已经嵌套在其WSDL元素的服务。