例子步骤如下:
1.在cbuilder6中选择soap server application,建立。
2.选Web App Debugger executeable 类型,
定义一个CoClass Name 为:wadSoapDemo1 ,
3. 提示是否要新建一个接口,确定即可打开新建接口向导,
如果要以后再增加接口,则在 New|WebServices 中选择 SOAP
Server Interface 同样可打开新建接口向导。
Generate sample methods
即可在生成的接口中同时生成一系列方法,比较全面地说明了如何在接口中定义方法。
Service Activation Model 指定服务端的激活方式:Per
Request(每次请求服务时激活)/Global(全局)。
采用Per Request则客户端的每次服务请求时建立服务,响应结束后也结束服务。Global
方式下,服务端只有一个服务实例,所有的客户端服务请求都由此实例处理,具体是通过一个叫 xxxFactory 的全局静态函数来实现的;
4.添加方法,并实现方法
a。在申明的接口中添加虚拟方法
b。在接口实现类中添加方法的申明
c。在接口实现类中添加方法的定义
5. 测试,看其接口方法是否提供出来。
a。build 后先运行一次生成的exe ,其会自动注册。
b。启动 Web App Debugger ,其实它就是一个测试用的IIS,点击ServerInfo
打开其http://localhost:1024/ServerInfo.ServerInfo,
即可看到一个注册的列表,找到刚注册的服务器,点击go,
c。在Service Info Page中可以看到定义的接口方法。
***************************************************************
客户端编写
1.New|Application 新建一个一般 VCL 应用程序;
2.New|Web Services|Web Services
Importer :
在url中输入刚才在服务端测试的接口,如
http://localhost:1024/xxxxxxx/wsdl/ITest (保证在浏览器可以看到xml文档)
选择“Next”后导入生成接口单元文件,谁用这个单元则#include 该单元。
3. 在 Form 上放上一个 Label ,Edit 和一个 Button
4. 双击 Button1 写下面的程序:
void __fastcall TForm2::Button1Click(TObject *Sender)
{
Label->Caption = GetITest()->GetMyMethod( StrToInt( Edit1->Text ) );
}
7.编译运行,在 Edit 中调参即可返回所要的结果。
源码:
http://www.tomore.com/1/44162.html