wsdl.exe错误:无法从名称空间" ..."导入绑定" ..."

时间:2020-03-05 18:57:17  来源:igfitidea点击:

在我创建的WSDL上运行wsdl.exe时,出现以下错误:

Error: Unable to import binding 'SomeBinding' from namespace 'SomeNS'.
  
  
  Unable to import operation 'someOperation'.
  These members may not be derived.

我使用的是文档文字样式,据我所知,我遵守所有规则。

综上所述,我有一个有效的WSDL,但该工具不喜欢它。

我要寻找的是是否有人对wsdl.exe工具有丰富的经验,并且知道一些我不知道的秘密陷阱。

解决方案

回答

我遇到了同样的错误消息。挖掘了一段时间后,发现除了wsdl文件之外,还可以提供xsd文件。因此,在wsdl命令末尾除了.wsdl之外,还包含/导入了.xsd文件,如下所示:

wsdl.exe myWebService.wsdl myXsd1.xsd myType1.xsd myXsd2.xsd ...

Wsdl发出了一些警告,但确实创建了一个正常的服务界面。

回答

有时我们必须更改代码。
消息的部分名称不应该相同;)

<wsdl:message name="AnfrageRisikoAnfrageL">
    <wsdl:part name="parameters" element="his1_0:typeIn"/>
</wsdl:message>
<wsdl:message name="AnfrageRisikoAntwortL">
    <wsdl:part name="parameters" element="his1_0:typeOut"/>
</wsdl:message>

对此:

<wsdl:message name="AnfrageRisikoAnfrageL">
    <wsdl:part name="in" element="his1_0:typeIn"/>
</wsdl:message>
<wsdl:message name="AnfrageRisikoAntwortL">
    <wsdl:part name="out" element="his1_0:typeOut"/>
</wsdl:message>