我一直试图让一台肥皂服务器实现(这是正确的术语吗?)由第三方制定的wsdl规范。我使用过Delphi的wsdl导入程序。 (部分)生成的代码如下所示:
miniPortType = interface(IInvokable)
['{824D172A-9C1F-D202-5B21-4C324553BCF0}']
// Cannot unwrap:
// - Input element wrapper name does not match operation's name
function miniService(const aMessage: MiniMessageType): MiniAnswerType; stdcall;
end;
调用时,服务器说“接口'miniPortType'不支持名为'MiniMessageType'的方法。”
我只能通过使函数的名称和消息的主要元素的名称相同来实现此目的。
我认为应该可以有不同的名字。至少soapUI不抱怨。我实际上别无选择,只能按原样实现wsdl。有谁知道如何解决这个问题?
我正在使用Delphi 2007。
谢谢,Miel。
答案 0 :(得分:1)
如果我没记错的话,SOAP接口实际上是在定义底部的“表”中定义的,它用于在通信中进行Delphi类型和SOAP类型之间的转换。我过去通过手动更改表构建调用来“纠正”了这种事情,但是你必须要小心,并且可能还需要在适当的位置修改SOAP文本以使其完全适合。