【问题标题】:Change a Delphi WSDL client definition to support different WDSLVersions更改 Delphi WSDL 客户端定义以支持不同的 WDSLVersions
【发布时间】:2014-08-11 20:13:36
【问题描述】:

我正在尝试使第 3 方 WebService 的新版本的实现更容易和简单。

为此,我已将所有 WSDL 生成的类更改为具有相同方法和属性的接口。

将服务接口更改为通用接口

并制作了AbstractFactory 以根据每个版本创建真实产品。

完成所有这些后,在解决其他小错误后,我运行了我得到的测试:

第一次机会例外,$75E5C42D。异常类 ERemotableException 带有消息“找不到 {}consultarAlteracao 的调度方法”。处理 intWSServidor.exe (7364)

有一个类consultarAlteracao,它变成了IconsultarAlteracao

我尝试更改InvRegistry 和所有其他方法以使用接口和抽象类,但没有成功。

【问题讨论】:

  • 这通常意味着 SOAP 框架找不到您正在调用的操作。检查此link 以获取解决此问题的一些提示。
  • @GuillemVicens 我试过了。在我更改继承以使用接口和工厂方法之前它正在工作
  • AFAIK,{} 表示它正在寻找与empty namespace 的操作。可能是WSDL 有一个您没有考虑的指定命名空间?

标签: web-services delphi interface wsdl delphi-xe3


【解决方案1】:

最终在 Delphi 中不支持接口元素作为 TRemotable 对象的属性。

将所有属性更改为实现基本接口的抽象类后一切正常

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-01
    • 1970-01-01
    • 2017-01-08
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    相关资源
    最近更新 更多