用于Delphi XE的SOAP服务器和客户端应用程序VCL + indy演示?

时间:2011-06-20 18:02:15

标签: web-services delphi soap delphi-xe delphi-xe2

Delphi过去常常包含一个用于Web服务的演示文件夹,但似乎不再包含此内容。

我刚刚尝试了Delphi 7演示项目(SOAPDMServerWAD,一个几乎没有UI的服务器,以及SOAPDMClient),即使在Delphi 7中也无法使它们运行。

如果有人曾在Delphi XE或Delphi 2010中进行类似的演示工作,与旧的SOAPDMServerWAD+SoapDMClient演示相同,在Delphi XE中工作,并且至少具有来自Delphi SOAP Server的最小UI应用程序向导,这将是完美的。

更新:该演示一直显示在Delphi 2010中,但使用现已废弃的WAD(web-app-debugger),我尝试将其移植到新的Indy {{1} },但我似乎无法让它工作。演示运行,但服务器没有用户界面,并且似乎没有运行任何HTTP服务器(使用常规Web浏览器,通过runtime/web-app-development-harnessing-code网址进行测试。顺便说一下,尝试使用Google搜索演示,这样网址出现了,不到一个小时前我问过。这太吓人了,谷歌。

Update2 请参阅下面的自己的答案,即将推出工作代码的链接。

1 个答案:

答案 0 :(得分:39)

我已在CodeCentral as item 28789上发布了完整的SOAP演示集。

这些包含来自WebServices文件夹的每个Delphi 2007时代SOAP演示,现在已针对Delphi XE和XE2进行了更新,包括将旧的WAD服务器转换为新的INDY VCL服务器。你认为这是令人印象深刻的,除非它不是。这真的很容易。只需使用向导创建一个新项目,然后将Web服务接口和实现单元以及属于旧演示的任何其他单元添加到项目中。一旦他们被添加到项目中,他们就会工作。 基本演示SOAP服务器在Delphi中很容易构建,一旦你有一个可用的演示,你会发现它很容易修改和扩展。

最能回答我上面提到的问题的演示位于SOAPDataModule子文件夹中。

2007年代演示的基本问题有两个:

  1. WAD(网络应用调试器)消失了。为了获得最佳演示目的,您必须使用Indy服务器创建一个新服务器,以免在IIS下使用WAD(已经消失)或设置ISAPI环境,这对于演示目的来说并不理想。我制作的新演示项目名为 SoapDMServerINDY ,它由数据模块(datamod_u.pas),VCL表单用户界面单元(IndyServerVCLFormUnit.pas)和Indy Server Web模块组成,叫IndyServerWebModule.pas

  2. Delphi 2007演示破解了由于现在有一个Debug / Win32子文件夹的演示可执行文件的新实践,你需要更进一步。我修复了演示服务器,以便在无法找到数据文件时向您发出错误消息警告,从而避免了神秘的“XML解析错误”。我还在一些演示中添加了一些错误检查,以便它告诉您需要安装interbase以使此演示工作,因为一些演示需要安装并运行Interbase,并且需要存在一个名为IBLOCAL的别名,最好是一个名为EMPLOYEE的表。

  3. enter image description here

    此演示的元素是服务器( SoapDMServerINDY ,基于SOAPDMServerWAD的代码),客户端 SOAPDMClient 连接到演示并有两个页面,一个页面将显示通过DBGrid +数据集远程处理的基本数据访问,第二个页面显示如何调用自定义SOAP方法。

    要使用演示:您必须启动服务器,单击开始按钮,然后启动客户端并单击连接。

    enter image description here