powerbuilder开发平台一直在发展,至pb9开始便已经支持webservice的调用,下面正是一个简单的教程,帮助大家掌握如何调用Webservice,接下来还将继续研究pb11中对webservice的调用以及创建,欢迎大家持续的关注。
首先开始第一讲:pb9对webservice的调用
大家至少需要以下知识,熟悉pb的开发,稍微了解webservice
1.首先我们创建或打开一个pb workspace.
2.勾选windows菜单中的system tree选项,打开左侧的system tree面板
3.在左侧的system tree中右键选择pbt,在弹出的菜单中选择properties,打开属性面板
4.在打开的属性面板中选择browser,添加pb扩展库pbsoapclient90.pbd(如果是pb9就是pbsoapclient90.pbd,pb10就是pbsoapclient100.pbd以此类推),这个pbd是用来处理webservice调用的类,可以在pb安装目录\shared\powerbulider目录下找到。
5.在打开的项目中新建Project -> Web Service Proxy Winzard,点击下一步
6.在出现的select wsdl file目录中设置wsdl地址,在这里我们要说明的是填入的地址有两种类型,可以使用本地的wsdl文件,也可以使用远程的wsdl描述,在这里我们建议使用远程获取的方式,这样一旦服务发生变化就可以重新编译新的代理,而不需要变动任何配置。熟悉webservice的可以知道,webservice可以发布元数据接口,我们可以通过服务+ "?wsdl"的方式来获取.例如http://127.0.0.1/test/webservice.asmx是服务地址,那么我们可以通过http://127.0.0.1/test/webservice.asmx?wsdl来获取wsdl描述。
7.选择服务
8.选择服务端口
9.输入生成代理名称前缀
10.设置项目名称
11.点击工具栏Deploy图标生成代理类
12.创建测试窗口
13.调用Webservice代码
//声明服务连接对象
SoapConnection conn
ttservice1soap test_ws
tns__Person tt
tns__Person tt1[]
long rVal
//string str_endpoint
//str_endpoint = "http://localhost/webserver/service1.asmx?WSDL"
conn = create SoapConnection
//创建服务实例
rVal = Conn.CreateInstance(test_ws, "ttservice1soap")
try
if rb_1.checked then
sle_1.text = test_ws.helloworld(sle_1.text)
elseif rb_2.checked then
sle_4.text = string(test_ws.addint(long(sle_2.text),long(sle_3.text)))
elseif rb_3.checked then
tt = test_ws.getperson()
sle_5.text = tt.firstname + "," + tt.lastname
else
tt1[] = test_ws.getpersonlist()
sle_6.text = tt1[1].firstname + "," + tt1[1].lastname + "|" + tt1[2].firstname + "," + tt1[2].lastname
end if
//如果捕获异常
catch(soapException ex)
messagebox("test",ex.text)
FINALLY
destroy conn
end try