2009-04-20 52 views
3

我一直在試圖獲得一個soap服務器,它實現了(是正確的術語?)由第三方制定的wsdl規範。我已經使用Delphi的wsdl導入器。生成的代碼(部分)如下: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; 

調用時,服務器說,「名爲‘MiniMessageType’沒有方法由接口‘miniPortType’支持」。

我只能通過使函數的名稱和消息的主要元素的名稱相同來得到此工作。

我認爲應該有可能有不同的名字。至少soapUI不會抱怨。而且我實際上別無選擇,只能按原樣實施wsdl。有人知道我能如何解決這個問題嗎?

我正在使用Delphi 2007.

謝謝,Miel。

+1

你使用的是什麼版本的Delphi? – 2009-04-20 14:10:45

+0

那麼你最終做了什麼?我希望在這裏找到一個有用的解決方案。 – 2010-11-19 20:25:16

回答

0

如果我沒有記錯,SOAP接口實際上是在定義底部的「表」中定義的,並且這是用於在通信中執行Delphi類型和SOAP類型之間的轉換的。過去,我通過手動更改表格構建調用來「糾正」了這類事情,但您必須小心,並且可能還需要在適當的位置對SOAP文本進行修改以使其全部適合。