我今天做了这个“PB创建及调用WebService”的小作业,下面我来分享一下我的整个实践过程以及我遇到的问题,希望对大家有所帮助,这个小作业是分以下三部来完成的:

一、构建WebService

①创建Workspace,Workspace命名为:Your_WebService

pb 生成java 命令 pb调用java_pb调用java webservice

②建立.NET Web Service Target,这一步只需要一路Next即可

pb 生成java 命令 pb调用java_Web_02

最后生产的项目文件中至少包含三项,一个webservice2应用,一个p_webservice2部署,一个n_webservice2用户对象,如图所示:

pb 生成java 命令 pb调用java_pb调用java webservice_03

③然后在这个n_webservice2对象中写自己的公开函数(只需双击n_webservice2便会出现如下界面):

pb 生成java 命令 pb调用java_pb调用java webservice_04

将你写好的函数保存,你会发现它出现在n_webservice2这个对象的Functions列表中:

pb 生成java 命令 pb调用java_文件名_05

二、发布WebService

①部署web service,打开p_webservice2,可以看到有几个属性页,其中有一个“objcet”页,可以看到你要发布的函数列表。在你要发布的函数名前打勾;然后点击菜单design->deploy project,即可部署webservice,但前提你必须有iis和.net。

pb 生成java 命令 pb调用java_pb调用java webservice_06

如果部署成功,你的WebService就基本没什么问题啦,可在浏览器输入下图所示链接检查你的WebService部署是否成功?

pb 生成java 命令 pb调用java_pb 生成java 命令_07

部署成功就是这样嗒:add函数就是你之前在n_webservice2对象中写的公开函数

pb 生成java 命令 pb调用java_文件名_08

pb 生成java 命令 pb调用java_pb 生成java 命令_09

然后我们将该网页存储为wsdl文件(注意:该文件要与你的WebService存在同一目录下),这样配置文件就建立好了。

pb 生成java 命令 pb调用java_文件名_10

三、调用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程序,具体步骤如下:

pb 生成java 命令 pb调用java_pb 生成java 命令_11

pb 生成java 命令 pb调用java_pb调用java webservice_12

pb 生成java 命令 pb调用java_文件名_13

2)还需要添加一个.pbd格式的文件,这个文件名是:webservice2.pbd,这个库在你后续编码调用函数时会给出提示,如果没有添加该项,后续窗口运行会出错,这一步很关键

pb 生成java 命令 pb调用java_配置文件_14

pb 生成java 命令 pb调用java_pb调用java webservice_15

添加webservice引用(按照步骤走就行了,下面我只对需要注意的地方进行标注)

pb 生成java 命令 pb调用java_文件名_16

到第二步,出现下面的界面,选中wsdl文件,如下图

pb 生成java 命令 pb调用java_pb调用java webservice_17

下面的界面,选择自己已发布的服务即可:

pb 生成java 命令 pb调用java_pb调用java webservice_18

下面的界面,不用填即可(如果填了比如soap,那么生成的名字就是soapservice2soap,后面的名字是固定的,不填只显示红色的内容)

pb 生成java 命令 pb调用java_pb 生成java 命令_19

下面按默认即可,

pb 生成java 命令 pb调用java_配置文件_20

这里选择你存放的类库:

pb 生成java 命令 pb调用java_Web_21

完成之后,如下图:

pb 生成java 命令 pb调用java_pb 生成java 命令_22

3)选中p_webservice2_wsproxy,选择菜单栏中Designe—>Deploy Project,生成n_webservice2soap文件,

pb 生成java 命令 pb调用java_文件名_23

4)构建方法调用n_webservice2soap,添加“Custom Class”

pb 生成java 命令 pb调用java_pb 生成java 命令_24

函数体:

pb 生成java 命令 pb调用java_Web_25

函数保存后如下图:

pb 生成java 命令 pb调用java_文件名_26

5)最后一步,在同一空间下新建立应用窗体,并添加webservice2.pbl类库(添加类库很重要,我就是卡在这一步,不知道怎么调用WebService,调用类库是个很简洁的方法)

在新建Application,Window后,在窗口布局界面拉一个Button,拉一个文本框,在Button的Click事件中写如下代码,WebService就调用成功了:

pb 生成java 命令 pb调用java_Web_27

调用成功结果图:

pb 生成java 命令 pb调用java_pb调用java webservice_28