我们正在使用带有Delphi2007补丁的Delphi2005,也正在试验DelphiXE SOAP库.但我遇到了麻烦……
我们的应用程序已经消耗了一年的内部服务.该服务使用document / literal约定,并由多个平台上的几个系统使用( java,.Net和我们的 – Delphi2005).现在我们需要成为一个出版商,而不仅仅是一个消费者.所以我们正在构建服务器服务. WSDL出错了.我使用“官方”WSDL作为文档/文字,当我尝试将其作为服务提供时,它以RPC样式出现.即使我已将HTTPSoapPascalInvoker.Converter的选项设置为[soLiteralParams,soDocument].
现在我做了一些搜索,我发现这样的陈述:
“Delphi for Win32不支持创建Document Literal Soap Servers.”
[ http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_22664248.html]
我们的应用程序已经消耗了一年的内部服务.该服务使用document / literal约定,并由多个平台上的几个系统使用( java,.Net和我们的 – Delphi2005).现在我们需要成为一个出版商,而不仅仅是一个消费者.所以我们正在构建服务器服务. WSDL出错了.我使用“官方”WSDL作为文档/文字,当我尝试将其作为服务提供时,它以RPC样式出现.即使我已将HTTPSoapPascalInvoker.Converter的选项设置为[soLiteralParams,soDocument].
现在我做了一些搜索,我发现这样的陈述:
“Delphi for Win32不支持创建Document Literal Soap Servers.”
[ http://www.experts-exchange.com/Programming/Languages/Pascal/Delphi/Q_22664248.html]
这句话已有几年了.有谁知道它是否仍然适用?
如果有必要,我可以将项目的这一部分移动到Delphi2010或XE,但我宁愿不这样做(在我们的自动构建过程中抛出一个扳手).包括SOAP库是可以的,我们已经这样做了.
因此,如果有人知道是否有可能在2005年,2010年或XE中编写一个Win32 Delphi Web服务,它将生成符合document / literal的WSDL,我会非常非常高兴.
解决方法
AFAIK,我上次检查时,Delphi SOAP Server的库存仅限于RPC,“官方”的座右铭是您可以使用Delphi Prism构建您的服务器(即我们不会在Delphi中添加Doc | Lit). 但是,您可以使用最新的RemObjects SDK(非免费)构建Doc | lit SOAP服务器,或使用IndySOAP(开源),但我不知道是否有与D2009及更高版本兼容的版本(Unicode / Indy) 10)…