我今天做了这个“PB创建及调用WebService”的小作业,下面我来分享一下我的整个实践过程以及我遇到的问题,希望对大家有所帮助,这个小作业是分以下三部来完成的:
一、构建WebService
①创建Workspace,Workspace命名为:Your_WebService
②建立.NET Web Service Target,这一步只需要一路Next即可
最后生产的项目文件中至少包含三项,一个webservice2应用,一个p_webservice2部署,一个n_webservice2用户对象,如图所示:
③然后在这个n_webservice2对象中写自己的公开函数(只需双击n_webservice2便会出现如下界面):
将你写好的函数保存,你会发现它出现在n_webservice2这个对象的Functions列表中:
二、发布WebService
①部署web service,打开p_webservice2,可以看到有几个属性页,其中有一个“objcet”页,可以看到你要发布的函数列表。在你要发布的函数名前打勾;然后点击菜单design->deploy project,即可部署webservice,但前提你必须有iis和.net。
如出现IIS或.NET相关错误,fail to Deploy of p_webservice2时,请参考相关资料:http://jingyan.baidu.com/article/b2c186c8ccc670c46ef6ff91.html
如果部署成功,你的WebService就基本没什么问题啦,可在浏览器输入下图所示链接检查你的WebService部署是否成功?
部署成功就是这样嗒:add函数就是你之前在n_webservice2对象中写的公开函数
②将webservice配置导出来(以http://localhost/webservice2/n_webservice2.asmx?WSDL为例)
在网址中输入“http://localhost/webservice2/n_webservice2.asmx?WSDL”这个就是我们要导出的文件,如下图
然后我们将该网页存储为wsdl文件(注意:该文件要与你的WebService存在同一目录下),这样配置文件就建立好了。
三、调用WebService
不管是用VS开发的基于.NET的WebService,还是用Java开发的WebService,还是用PB本身开发的.NET Web Service,PB调用WebService的原理是一样的,都是通过WSDL访问WebServices。
①构建环境
1)将“n_webservice2.wsdl”放到程序目录(如果上一步该文件存放位置正确,可忽略这一步),
2)将pb安装目录下的“pbsoapclient115.pbd”文件拷贝到程序目录(pb9.0对应的是pbsoapclient90.pbd,pb11.5对应的是pbwsclient115.pbd)
②PB程序调用
1)将pbsoapclient115.pbd引用到pb程序,具体步骤如下:
2)还需要添加一个.pbd格式的文件,这个文件名是:webservice2.pbd,这个库在你后续编码调用函数时会给出提示,如果没有添加该项,后续窗口运行会出错,这一步很关键
添加webservice引用(按照步骤走就行了,下面我只对需要注意的地方进行标注)
到第二步,出现下面的界面,选中wsdl文件,如下图
下面的界面,选择自己已发布的服务即可:
下面的界面,不用填即可(如果填了比如soap,那么生成的名字就是soapservice2soap,后面的名字是固定的,不填只显示红色的内容)
下面按默认即可,
这里选择你存放的类库:
完成之后,如下图:
3)选中p_webservice2_wsproxy,选择菜单栏中Designe—>Deploy Project,生成n_webservice2soap文件,
4)构建方法调用n_webservice2soap,添加“Custom Class”
函数体:
函数保存后如下图:
5)最后一步,在同一空间下新建立应用窗体,并添加webservice2.pbl类库(添加类库很重要,我就是卡在这一步,不知道怎么调用WebService,调用类库是个很简洁的方法)
在新建Application,Window后,在窗口布局界面拉一个Button,拉一个文本框,在Button的Click事件中写如下代码,WebService就调用成功了:
调用成功结果图: