4

我一直在尝试建立一个肥皂服务器来实现(这是正确的术语吗?)第三方制定的 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。有人知道我该如何解决这个问题吗?

我正在使用德尔福 2007。

谢谢,米尔。

4

1 回答 1

1

如果我没记错的话,SOAP 接口实际上是在定义底部的“表”中定义的,它是用来在通信中进行 Delphi 类型和 SOAP 类型之间的转换的。过去,我通过手动更改表构建调用“纠正”了这种事情,但您必须小心,并且可能还需要在适当的位置修改 SOAP 文本以使其完全适合。

于 2009-04-20T14:18:00.653 回答