pb调用Webservice步骤

合集下载

Pb调用Webservice

Pb调用Webservice

Pb调用Webservice分类:PowerBuilder 2011-05-17 15:48 1436人阅读评论(0) 收藏举报webserviceprotocolsdocumentationsoapservicewizard而现在WebService非常火,如果将两者结合起来呢,比如:用Net写好的WebService被Pb调用,而且还可以发布成接口形式,被其他公司所调用,合乐而不为呢?先说一下开发环境:32位Win7旗舰版+PB11.5其实在PB10.0出来时候,就已经支持调用WebService方式了。

如下面步骤即可实现调用。

l 步骤1在Net中创建一个WebService方法,用于被Pb调用,如图-1所示图-1l 步骤2将此WebService发布,最好发布成IIS方式,如图-2所示。

图-2这里有一点说明下,发布成IIS以后,是可以直接在浏览器里打开的,但它的后缀是asmx,而PB需要的是wsdl方式,就是说如何生成Wsdl文件?如下图-3所示,另存为即可并将这个文件存储起来。

图-3好了,准备工作基本完成l 步骤3创建PB的解决方案文件,如图-4所示图-4这里面要必须引用一个pbwsclient11.pbd文件,不然,会调用不成功。

这个文件在安装路径里就可以找到。

l 步骤4从此步开始,我们按照创建对象创建一步一步操作即可,如下图列表所示如图-5所示,选择Web Service Proxy Wizard图标如图-6,这个选项勾不勾没有关系如图-7,这个就要输入我们生成好的WSDL文件路径了(绝对路径)如图-8所示,如果能到这里,就基本没有问题了如图-9所示,到这里时,一定要编译下,就是保存图标的后面一个图标,余下事情就是编写代码,如图-10所示,是最终样子。

图-10l 步骤5创建一个CustomObject对象,声明一个方法,直接调用即可,如图-11所示(注意:下面的lsc_conn.createinstance(lsv_obj,“service1soap”) 在pb9时报错,改为: lsc_conn.cr eateinstance(lsv_obj,“service1soap”,'http://wpvs2 008/countwebservice/countwebservice.asmx')后可以。

PB调用WebService

PB调用WebService

PB调用WebService不管是用VS开发的基于.NET的WebService,还是用Java开发的WebService,还是用PB本身开发的.NET Web Service,PB调用WebService的原理是一样的,都是通过WSDL 访问WebServices.具体步骤有三:1.编写WebService2.创建PB Web Service Proxy3.创建PB Web Service Client1. 编写WebService此处不赘述,可以查阅相关编写WebService的资料。

2. 创建PB Web Service Proxy1) 先建立工程,然后建立Web Service Proxy。

Web Service Proxy Wizard和Web Service Proxy都可,区别是前者是向导式的,后者都是手工填写的。

2) 选择是否使用.Net引擎(Use .Net Engine)。

如果不勾选,则默认使用的是EasySoap Engine,如果没有特殊需要建议不使用.Net Engine,虽然.Net Engine支持的属性、数据类型较多(诸如.NET的DataSet等),但是比较庞大,必须需要.Net Framework SDK的支持,效率会受到一定的影响。

3) 填写WSDL的位置即可。

4) WSDL文件中包含的Web服务及端口。

5) 可以给Proxy Name加一个前缀,不加就Proxy Name就是WsDemoServiceHttpPort。

6)7)8)9)10) 部署web service proxy工程。

11) 部署完之后,可以看到webservice了。

3. 创建pb Web Service Client创建一个窗体,窗体上放置一个按钮,点击按钮,调用Web Service。

在按钮的click事件中编写PowerScript:string resultlong llsoapconnectionlsc_connn_webservicesoaplsrv_objlsc_conn = create soapconnectionlsc_conn.createinstance(lsrv_obj, 'n_webservicesoap')result = lsrv_obj.of_decode( '0054','')ll = lsrv_obj.of_test( )messagebox(string(ll),result) 调用Web Service成功!:)。

pb11开发webservice

pb11开发webservice

pb11开发webservice⽤pb11开发webservice真是很简单,现在我把搭建的过程简单描述⼀下。

1、服务端打开pb11,选择菜单file->new->target->.net web service,然后⼀路next,最后⽣产的项⽬⽂件中⾄少包含三项,⼀个webservice应⽤,⼀个p_webservice部署,⼀个n_webservice⽤户对象,然后在这个n_webservice对象中写⾃⼰的公开函数,即可。

例如,函数string wf_getdw(ref string synac)SQLCA.DBMS = "" SQLCA.LogPass = "123456" SQLCA.LogId = "sa" SQLCA.AutoCommit = FalseSQLCA.DBParm = "Namespace='System.Data.SqlClient',Database='mydb',DataSource='.'"connect;datastore lds string ls_rtnlds = create datastore lds.dataobject = "dd" lds.settransobject(sqlca) lds.retrieve()synac = lds.describe("datawindow.syntax") ls_rtn = lds.describe("datawindow.data")disconnect; destroy ldsreturn ls_rtn然后部署web service,打开p_webservice,可以看到有⼏个属性页,其中有⼀个“objcet”页,可以看到你要发布的函数列表。

pb webservice调用例子

pb webservice调用例子

以下是一个使用PowerBuilder(PB)调用WebService的示例,字数超过1500字。

首先,确保你已经在PowerBuilder中创建了一个WebService方法,并将其发布为IIS 方式。

然后,按照以下步骤进行操作:创建PB的解决方案文件:在PowerBuilder中创建一个新的解决方案文件,并确保引用了一个pbwsclient11.pbd文件。

这个文件在安装路径中可以找到。

创建对象:从"工具箱"中拖动一个"WebServiceProxyWizard"图标到PowerBuilder的设计界面。

这将创建一个新的对象,用于调用WebService。

连接SOAP对象:在代码编辑器中,使用以下代码连接SOAP对象:ls_s1 = "abc"ls_s2 = "def"// 连接SOAP对象if ole_ws.ConnectToNewObject("MSSOAP.SoapClient30") < 0 thenif ole_ws.ConnectToNewObject("MSSOAP.SoapClient") < 0 thenthrow CreateRuntimeError(ls_error)end ifend if这段代码将尝试连接到两个不同的SOAP客户端对象。

如果连接失败,将抛出一个运行时错误。

初始化WebService地址:使用以下代码初始化WebService的地址:vbnetole_ws.mssoapinit(ls_address)其中,ls_address是WebService的WSDL文件路径。

调用方法:使用以下代码调用WebService方法:vbnetls_return = ole_ws.addstr(ls_s1, ls_s2)其中,addstr是WebService方法名,ls_s1和ls_s2是方法的参数。

PB调用各类WebService或c#程序

PB调用各类WebService或c#程序

PB调用各类WebService或c#程序慢慢的有很多接口pb都已经无法调用了,还有一些进制计算,位移等pb都无法实现,这时最简单的就是用c#做好,让pb调用。

但是pb只能调用最基础的c++开发的标准dll。

通过无数次的百度,我找到了一个好的方法,也许您已经知道了。

但是我觉得还是要写出来,只要还有一个为此发愁的朋友存在。

谢谢!方法思路是:1、用c#写一个类,方法的参数一定要用标准数据类型,返回值也要是标准数据类型(string、int或者结构等等)。

在这个方法里面调用各类webservice或其他http接口等pb无法直接调用的。

2、我正巧要做一个调用java写的webservice,下面贴出代码,供参考,因为用csc.exe编译程序无法处理引用,所以using System;using System.Collections.Generic;using System.Text;using System.Security.Cryptography;namespace ysxt{public class ws{public string sendrecv(string sUser, string sPwd){string retu = "";try{xjca.YsxtMainServiceImplService myrefe = new xjca.YsxtMainServiceImplService(); //这里就是解决csc.exe无法编译引用问题的,xjca是在另外一个ysws.cs文件里,这个cs文件不是我写的,也不能写出来,这是用另外一个命令生成出来的,具体命令看本文最后备注myrefe.Url = myUrl;retu = myrefe.sendRecv(sUser, sPwd);}catch (Exception e){return e.Message;//一定要用try....catch,否则pb调用过程中出现错误,都没有办法知道哪里错了,这句话就是关键。

pb11+webservice开发分布式三层应用

pb11+webservice开发分布式三层应用

pb+webservice开发分布式三层应用(演示或测试例程代码:WebserviceExample.rar)一、 WEBSERVICE服务端的开发1、新建立一个workspace工作区先择FILE菜单下的NEW,选择标签页‘Workspace’新建一个工作区。

点击后出现下图在文件名处输入工作区的名称,假设我们的工作区名为webserver,单击保存按钮。

这样工作区就建立成功了。

2、建立一个.net web service 应用点击FILE菜单下的NEW选中.net web service 点击ok按钮点击next按钮点击next按钮这里我们不修改pbl库名,当然你可以按你的意思修改库名,点击next 按钮。

一直点Next按钮直到出现这里需要注意一点,如果你当前的IIS端口,不是默认的80 ,假设是7000的话,那么在localhost后面要加上“:7000” ,。

再点击一次next直到finish按钮。

3、连接数据库(建立测试环境所用文件CreateENV.sql)我们先来建立一个数据库的连接以为后期的webservice服务提供一个连接。

打开系统生成的n_webservice对像在其constructor里面写上SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "ConnectString='DSN=localdbora8;UID=scott;PWD=tiger',PBCatalogOwner='scott'"我是拷贝的这里你可以修改成你的数据库连接参数。

数据库连接建立完成后,我们再建立一个uf_retrieve的方法用来提取数据库数据long ll_row,ll_returnrowstring ls_oldsql,ls_newsql,ls_err_a,ls_errorint i,LI_WHEREdatastore ds1ds1 = create datastoreconnect using sqlca;if SQLCA.SQLCode <> 0 thenp_ref_returnerr="连接数据库出错,请检查数据库连接参数。

PB9.0调用Webservice步骤以及相关问题

PB9.0调用Webservice步骤以及相关问题

PB9.0调用Webservice步骤以及相关问题1,pb安装路径下找到pbsoapclient90.pbd,加到程序中;2,pb-->file--->new---->webservice Proxy Wizard输入webservice wsdl url ,一般为url?WSDL;3,生成代理对象;4,按例子调用;soapConnection conn // Define SoapConnectionpopservice1soap proxy_obj // Declare proxyint rValstring sconn = create SoapConnectionrVal = Conn.CreateInstance(proxy_obj, "popservice1soap",)trys = proxy_obj.helloworld()// Invoke servicemessagebox("", s)catch ( SoapException e )messagebox ("ErrDAT* d or", "Cannot invoke Web service")// error handlingend trydestroy conn问题点:1、调用WS传入参数为null更改WS默认的命名空间2、将http浏览器中可以调用,PB9环境中没有生成调用对象PB9可能不支持WS页面方法中返回的数据类型,任何一个返回类型不支持都将出现此问题3、出现pb9 无法请求识别元素命名空间错误PB9生成的代理类命名空间和WS地址的命名空间不一致,删除代理文件,重新建立代理类。

PB WebService应用

PB WebService应用
• 如果在安装IIS之前,已经安装了.NET FrameWork SDK,则需要执行以下命令,在IIS中注册.NET FrameWork的运行环境。
C:\WINDOWS\\Framework\v2.0.50727 \aspnet_regiis -i
在IIS中增加网站
• 在IIS增加一个网站(不是虚拟目录)。如果计算机 已存在多个网站,可以通过主机头或端口号区分出来。 如果建立的网站端口号不是80,则必须保证防火墙开 放了端口。 • 网站的版本必须为2.0或以上版本。
• IIS里面相应版本的 服务扩,必须启用(允 许)
• 新建的网站,允许是一个空站。即把网站建在一个空 白的目录上。
网站创建向导
网站创建向导
由于网站建在本地,所以IP地址可以不输(127.0.0.1)。一台电脑可以建立多个网站, 通过端口号或主机头区分出来。主机头一般为网站的域名,如.由 于在本地建立,没有绑定域名,所以用不同的端口加以区分。
设置WebService编译时,是生成一个安装包程序,还是直接发布到网站。 Localhost:9001表示发布到本机9001端口的网站上。即刚才在IIS中增加的网站。
在PB中增加WebService项目
新建项目向导完成后,PB IDE自动按向导过程中设置的组件名称,建立了一个不可视 对象。可以在该组件中实现WebService的功能,再编译发布。
在PB中增加WebService项目
可以加入其它的PBL,例如以前已经写好的一些公共类库。
在PB中增加WebService项目
输入需要增加的不可视用户对象的名称。在该用户对象中,实现WebService的功 能。最终可以把该组件编译发布为WebService的各种服务接口。
在PB中增加WebService项目

2C#调用 PB做的WEBSERVICE

2C#调用 PB做的WEBSERVICE

C#.net调用PB做的WEBSERVICE1,.net中增加WEBSERVICE引用。

打开对应的SERVICE引用窗口后,输入http://xxxx/n_xxxx.asmx?WDSL即可引用。

2,程序调用方法.net调用WEBSERVICE不能像写PB函数那样调用。

.NET中将所有输入参数全部作为一个OBJECT_1,全部输出参数做一个OBJECT_2 引用名n_xxxx PB的WEBSERVICEwf_funcxxxx WEBSERVICE中要调用的函数//-------------------------------------------------------------------------------------------------------------------------------ServiceReference1.n_xxxx Soap=new ServiceReference1.n_xxxx SoapClient();ServiceReference1.wf_funcxxxx Request OBJECT_1=new ServiceReference1.wf_funcxxxx Request; ServiceReference1.wf_funcxxxx Request OBJECT_2=new ServiceReference1.wf_funcxxxx Response; OBJECT_1.Body.参数1=“xxxx”;//赋值OBJECT_1.Body.参数2=“xxxx”;//赋值OBJECT_2=ServiceReference1.wf_funcxxxx(OBJECT_1);OBJECT_2.BODY.返回参数1就是要获得的值//-------------------------------------------------------------------------------------------------------------------------------实例:WindowsFormsApplication1.ServiceReference1.n_ip_indicatorSoap s=new ServiceReference1.n_ip_indicat orSoapClient();WindowsFormsApplication1.ServiceReference1.wf_getcompany_ipRequest stru_input_argument;stru_input_argument=new ServiceReference1.wf_getcompany_ipRequest();stru_input_argument.Body=new ServiceReference1.wf_getcompany_ipRequestBody();stru_input_argument.Body.str_company="Crazy";stru_input_argument.Body.str_ip="";stru_input_argument.Body.str_err="";WindowsFormsApplication1.ServiceReference1.wf_getcompany_ipResponse stru_return;stru_return=new ServiceReference1.wf_getcompany_ipResponse();stru_return.Body=new ServiceReference1.wf_getcompany_ipResponseBody();stru_return=s.wf_getcompany_ip(stru_input_argument);//返回的IPthis.Text=stru_return.Body.str_ip.ToString();//返回的错误信息button1.Text=stru_return.Body.str_err.ToString();3错误的方法:(不要用PB调用WEBSERVICE的思路)WindowsFormsApplication1.ServiceReference1.n_webserviceSoapClient s=new ServiceReference1.n_webserviceSoapClient();string str="";str=s.get_nj_sys_code("1","01");//读取数据库记录str=s.inset_nj_sys_code("53","01","测试WEBSERVICE","空","66","1","WEB");//写入数据库记录this.textBox1.Text=str;。

PB12.5访问MyEclipse2013WebServer(未引用外部包)

PB12.5访问MyEclipse2013WebServer(未引用外部包)

服务器端MyEclipse2013 WebServer 1.File ---> New--->Web Server Project2.File ---> New--->Class3.在Test类中输入如下代码public class Test{public String getMsg(){return"这里Java Webserver返回的消息哟";}}4.新建Web服务见下图5. 部署服务器6. 启动服务器1. 在PB12.5中新建一个工作空间,一个应用,一个窗口pbsoapclient125.pbx两个文件,然后将两个文件复制到客户端程序所在目录,并将pbsoapclient125.pbd导入到工作空间.(注意PB9.0中是pbsoapclient90.pbd用pbsoapclient90.dll )3.生成代理访问对像File--->New--->Project-->Web Server Proxy Wizard然后打开工程生成代理对像4.在窗口按钮单击事件中添加如下代码String ls_WebServerIPSoapConnection io_conntestport proxy_obio_conn = create SoapConnectionls_WebServerIP = "http://localhost:8080/myWebServer/TestPort?wsdl" tryio_conn.CreateInstance(proxy_obj, "testport", ls_WebServerIP ) catch(runtimeError errprint)messagebox("1",errprint.getmessage())destroy io_conn//destroy这个对象,内存释放出来destroy proxy_obj//destroy这个对象,内存释放出来end trymessagebox( "", proxy_obj.Getmsg( ) )destroy io_conndestroy proxy_obj5.运程程序如下。

PPB调用PB11的WEBSERVICE

PPB调用PB11的WEBSERVICE

PPB学习44-PPB调用PB11的WEBSERVICE首先先感谢Q群的深圳-谬谬,把这个问题解决了,我在此基础上做一个例程。

PB11可以向.NET上直接发布WEBSERVICE服务,下面我们就举个例子来看下如何实现这个过程。

以下是例程的工作环境:.net2005,PB11.2,PPB2.5,ASA9,IIS数据库采用ASA9自带的SAMPLE数据库,准备工作,为SAMPLE数据库创建一个系统的DSN。

如下图所示,命名为ASADEMO9。

这个DSN设成服务方式启动,如下图IIS请检查WWW服务是否已经开启,默认网站是否已经启动,如果没有启动可以更改一下WWW端口试下,可能你的80端口被其他程序占用。

如下图所示。

这一切准备好了,下面我们就开始先用PB11发布一个WEBSERVICE,在这个实例中,我要完成的是将一个SELECT的SQL语句做为参数,将这个SELECT语句的结果返回去。

打开PB11,NEW一个TARGET,在下面的对话框中选择.net web service,创建一个发布到.NET上的WEB SERVICE应用下面是一个向导过程,第一页,NEXT,没啥要设置的。

第二页设置是新做一个还是使用一个已有库列表,这里我们选择新做一个。

第一个选项,按NEXT设置PROJECT的名字及PBL和PBT的文件路径,我命名为P_mywebservice,文件路径我就放在下面的目录,大家根据自己的需要放置。

按NEXT这一页是否要增加其他PBL,这里我们没有其他PBL加入,直接按NEXT创建一个用户对象,取名n_mywebservice,如下图所示,按NEXT这页是设置发布到.net上的目录,可以用默认值,如下图,按NEXT添加其他资源文件和目录,这里我们就不填了,按NEXT添加需要的动态库,在我们这个例子里也没有要添加的,按NEXT设置输出,一个是生成SETUP文件,用于安装,另一个是直接发布到IIS 上,我们选发布到IIS上,并且设定IIS的地址,包括端口号。

PB9访问WebService_的配置方法

PB9访问WebService_的配置方法

PB9访问WebService 的配置方法
注意:PB9访问WebService必须升级补丁EBF14228-8836,否则在生成代理类时会出错,编译时错误Wrong library list returned for operation 1. 建一个工作空间和应用,
2.添加用于连接WebService的连接类SoapConnection所在的库文件C:\Program Files\Sybase\Shared\PowerBuilder\ pbsoapclient90.pbd
3.创建WebService Proxy Project,生成该工程时会产生一个调用WebService功能的客户端类
4.看看英文内容,然后单击Next,(这段英文很重要的)
5.配置Webservice地址
.
6.选择要使用的服务,然后单击Next;如果看不到服务通常需要关闭PB然后再重新打开,
7.选择端口,然后单击Next
8.为代理名字写一个前缀
9.选择发布工程所在的库pbl和工程名
10.准备创建代理设置的信息显示
11.新建代理的工程信息
12.发布代理工程和发布成功后的显示
13.编写代码调用WebService,
14.执行程序后的结果
终于程序测试完成了,程序配置也写完了。

Pb8利用ole方式通过MicrosoftSoapToolkit30调用webservice

Pb8利用ole方式通过MicrosoftSoapToolkit30调用webservice
Pb8利用ole方式通过Microsoft Soap Toolkit30调用webservice
1、下载Microsoft Soap Toolkit30并安装
2、PB8以及以前版本连接Webservice代码如下:
try
OLEObject MSSOAPLib1
MSSOAPLib1 = CREATE OLEObject
Long ll_ctToNewObject("MSSOAP.SoapClient30")
IF ll_result <> 0 THEN
MessageBox("系统提示","连接MSSOAP.SoapClient失败!返回参数:"+String(ll_result))
as_output = MSSOAPLib1.msginterface("F000101",sInputXml,"xml")
catch(RuntimeError e)
return -1
end try
--武汉小虾
END IF
MSSOAPLib1.mssoapinit("http://IP:port/MessageApi.asmx?wsdl")
MSSOAPLib1.ConnectorProperty("Timeout",180000) //设置访问超时时间
string as_output
string sInputXml="<data><MerBillNo>test0211211</MerBillNo><MerNo>E000046301</MerNo><OrderDate>2016-05-25</OrderDate><OrderAmount>0.01</OrderAmount><OrderSource>01</OrderSource><ProductCode></ProductCode><ProductName>测试商品01</ProductName><CreateBy>夏晓勇</CreateBy><OrderType>01</OrderType><PayType>01</PayType><Ord_Source_Ip></Ord_Source_Ip><Ord_Termno></Ord_Termno><Source_Id></Source_Id><Bill_Code></Bill_Code><OrderState></OrderState><Sign_Type></Sign_Type><SignData></SignData><OrderData><row><AppointID></AppointID><Card_No></Card_No><Dept_Code>10080</Dept_Code><Dept_Name>消化内科</Dept_Name><Exc_Dept_Code>10080</Exc_Dept_Code><Exc_Dept_Name>消化内科</Exc_Dept_Name><Reg_Type_Code>01</Reg_Type_Code><Reg_Type_Name>-</Reg_Type_Name><Reg_Level_Code>01</Reg_Level_Code><Reg_Level_Name>普通</Reg_Level_Name><Doct_Code>0173</Doct_Code><Doct_Name>黄健</Doct_Name><Reg_Fee>0.01</Reg_Fee><Chk_Fee></Chk_Fee><Dig_Fee></Dig_Fee><Tot_Amount>0.01</Tot_Amount><Noon>PM</Noon><See_Date>2015-05-23</See_Date><See_Number>4</See_Number></row></OrderData></data>"

python调用webservice接口方法

python调用webservice接口方法

python调用webservice接口方法Python是一种高级编程语言,可用于许多应用程序,包括与Web服务通信。

本文将介绍如何使用Python调用Web服务接口方法。

Web服务是一种交换数据的方式,它使用基于XML的协议来传输数据。

Web服务接口方法是Web服务提供的一组函数,可用于与Web服务进行交互。

使用Python调用Web服务接口方法需要以下步骤:1. 导入所需的库和模块。

Python提供了许多库和模块,可用于与Web服务通信。

例如,可以使用urllib库来发送HTTP请求,使用xml.etree.ElementTree模块来解析XML响应。

2. 创建SOAP请求消息。

SOAP是一种基于XML的协议,用于在Web服务之间交换信息。

SOAP请求消息包括Envelope、Header和Body元素。

Envelope元素包含Header和Body元素,Header元素包含任何标题信息,Body元素包含Web服务接口方法和参数。

3. 发送SOAP请求消息到Web服务。

将SOAP请求消息作为HTTP POST请求发送到Web服务。

可以使用urllib库中的urlopen()函数发送HTTP请求。

4. 解析Web服务响应。

Web服务响应是一个XML文档,包含Web服务接口方法的返回值。

可以使用xml.etree.ElementTree模块解析XML响应,并提取所需的信息。

使用Python调用Web服务接口方法需要了解Web服务的WSDL文件。

WSDL是一种描述Web服务接口的XML文档,包含Web服务的方法、参数和返回值。

可以使用WSDL文件来生成Python客户端代码,以方便使用Web服务接口方法。

在本文中,我们介绍了使用Python调用Web服务接口方法的步骤。

使用Python调用Web服务接口方法需要熟悉SOAP协议、HTTP 请求和XML解析。

掌握这些技能可以帮助开发人员更好地使用Web 服务,提高应用程序的功能和性能。

PB9访问WebService_的配置方法

PB9访问WebService_的配置方法

PB9访问WebService 的配置方法
注意:PB9访问WebService必须升级补丁EBF14228-8836,否则在生成代理类时会出错,编译时错误Wrong library list returned for operation 1. 在一个工作空间和应用,
2.添加用于连接WebService的连接类SoapConnection所在的库文件C:\Program Files\Sybase\Shared\PowerBuilder\ pbsoapclient90.pbd
3.创建WebService Proxy Project,生成该工程时会产生一个调用WebService功能的客户端类
4.看看英文内容,然后单击Next,(这段英文很重要的)
5.配置Webservice地址.
6.选择要使用的服务,然后单击Next;如果看不到服务通常需要关闭PB然后再重新打开,
7.选择端口,然后单击Next
8.为代理名字写一个前缀
9.选择发布工程所在的库pbl和工程名
10.准备创建代理设置的信息显示
11.新建代理的工程信息
12.发布代理工程和发布成功后的显示
13.编写代码调用WebService,
14.执行程序后的结果
终于程序测试完成了,程序配置也写完了。

pb调用webservice

pb调用webservice

webservice服务器端会提供wsdl接口文档,pb里面用web service proxy wizard从wsdl 生成对象,再调用即可(注意把c:\program files\sybase\shared\powerbuilder下面的pbsoapclient90.pbd加入target),代码样例:SoapConnection lsc_connsoapservice lproxy_objString ls_proxy_name = "soapservice "//生成的代理对象名称String ls_url = "http://localhost:8080/axis/services/SoapService "//web service url//lsc_conn = Create SoapConnectionlsc_conn.SetOptions( "SoapLog=~ "soaplog.txt~ " ")int li_ret, ili_ret = lsc_conn.Createinstance( lproxy_obj, ls_proxy_name, ls_url)If li_ret <> 0 ThenMessageBox( "错误", "调用失败,错误号码:" + String(li_ret))ReturnEnd Iftns1__requestcontent lst_requestlst_request.arg1 = 5lst_request.arg2 = "test "tns1__returnresult lst_resultlst_result = lproxy_obj.GetResult(lst_request)MessageBox(String(lst_result.result), "code: " + lst_result.reason.code + "~nmessage: " + &lst_result.reason.message + "~ndesc: " + lst_result.reason.desc )注意pb调用webservice只能返回简单的int string类型,复杂的结构会出错怎么样在pb9里面调用WebServicepb9也出来了,速度够快的,大概看了一下,与pb8比较,增加的功能不多,主要是WebService,Xml和Ejb.我就感受了一下pb9的WebService功能,与大家共享。

pb调用webservice

pb调用webservice

webservice服务器端会提供wsdl接口文档,pb里面用web service proxy wizard从wsdl 生成对象,再调用即可(注意把c:\program files\sybase\shared\powerbuilder下面的pbsoapclient90.pbd加入target),代码样例:SoapConnection lsc_connsoapservice lproxy_objString ls_proxy_name = "soapservice "//生成的代理对象名称String ls_url = "http://localhost:8080/axis/services/SoapService "//web service url//lsc_conn = Create SoapConnectionlsc_conn.SetOptions( "SoapLog=~ "soaplog.txt~ " ")int li_ret, ili_ret = lsc_conn.Createinstance( lproxy_obj, ls_proxy_name, ls_url)If li_ret <> 0 ThenMessageBox( "错误", "调用失败,错误号码:" + String(li_ret))ReturnEnd Iftns1__requestcontent lst_requestlst_request.arg1 = 5lst_request.arg2 = "test "tns1__returnresult lst_resultlst_result = lproxy_obj.GetResult(lst_request)MessageBox(String(lst_result.result), "code: " + lst_result.reason.code + "~nmessage: " + &lst_result.reason.message + "~ndesc: " + lst_result.reason.desc )注意pb调用webservice只能返回简单的int string类型,复杂的结构会出错怎么样在pb9里面调用WebServicepb9也出来了,速度够快的,大概看了一下,与pb8比较,增加的功能不多,主要是WebService,Xml和Ejb.我就感受了一下pb9的WebService功能,与大家共享。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
st_waiting.visible = false
return
catch (PBXRuntimeError e15)
messagebox('调用方法','调用 函数出现 运行错误 错误!')
st_waiting.visible = false
return
catch (RUNtimeerror e16)
下面是我调用他们的下载疾病目录 过程
int mess
mess = messagebox('提示','确定要重新下载数据吗?',question!,yesno!,2)
if mess = 2 then return
st_waiting.visible = true
//////////////////////////
err = '创建实例失败,请检查代理对象是否正确,错误代码'
messagebox('',err)
st_waiting.visible = false
return
end if
//第二步 调用 Ws的方法 , 因为方法不一样,所有函数参数也不一样
string WebService_Return_Values
end if
// 第四部 把返回的值 通过 PBDOM , 转化成 XML 文件
PBDOM_BUILDER pbdom_bldr
PBDOM_Document pbdom_doc
PBDOM_Object pbdom_obj_array[]
PBDOM_Element pbdom_elem
destroy i_conn
try
WebService_Return_Values = lproxy_obj.getDiseaseCatalog (gs_hospitalcode )
catch (SoapException e14)
messagebox('调用方法','调用web service 失败:' + e14.getMessage())
messagebox('调用方法','调用 函数出现 不可知 错误!')
st_waiting.visible = false
return
end try
//longlong aa
//aa = len(WebService_Return_Values)
//messagebox('',string(aa))
st_waiting.visible = false
messagebox('',err)
return
end try
try
ll_ret = lsc_conn.createInstance(lproxy_obj,str_proxy_name,wsdl)
catch (RUNtimeerror e13)
messagebox('',err)
st_waiting.visible = false
return
end try
try
lsc_conn.SetOptions("SoapLog=~"soaplog.txt~"")
catch (RUNtimeerror e12)
err = 'soapconnection 调用函数SetOptions 出现错误,错误消息是: ' + e12.getMessage()
qqncmsservicehttpport lproxy_obj
try
lsc_conn = create soapconnection
catch (RUNtimeerror e11)
err = '创建soapconnection 出现错误,错误消息是: ' + e11.getMessage()
//messagebox('',mid(WebService_Return_Values , 6000 , 10000))
// 第三步 判断 调用方法是否 返回了正确的值 (错误的结果)
//messagebox('',WebService_Return_Values )
string re
try
sle_2.text= iws_proxy_obj.gf_decode_md5(sle_1.text) //调用web service方法
catch (soapexception e)
messagebox('提示:','连接服务器失败!')
end try
destroy iws_proxy_obj //webservices 组件
err = 'soapconnection 创建实例(函数createInstance)失败,错误消息是: ' + e13.getMessage()
messagebox('',err)
st_waiting.visible = false
return
end try
if ll_ret <> 0 then
re = f_nh_get_true_or_false(WebService_Return_Values)
if re <> '' then // 表示返回了错误的结果, 并显示错误提示!
messagebox('',re )
st_waiting.visible = false
return
commit;
messagebox('','下载成功!')
dw_4.retrieve()
else
rollback;
messagebox('','下载失败!')
end if
//============调用web server方法======================
return
END TRY
// 第五部 把xml转化成 需要的 数据, 如,可以导入数据窗口。
//long ll_retrieve
Байду номын сангаас//
//dw_2.reset()
//ll_row = dw_2.ImportFile(XML!,"pbdom_doc_disease.xml")
Destroy pbdom_bldr
CATCH (PBDOM_Exception except)
MessageBox ("Exception Occurred", '创建PBDOM_Builder失败:' + except.Text)
st_waiting.visible = false
Try
pbdom_bldr = Create PBDOM_Builder
pbdom_doc = pbdom_bldr.BuildFromString (WebService_Return_Values)
pbdom_doc.SaveDocument ("pbdom_doc_disease.xml")
long ll_rv,ll_result
soapconnection i_conn
n_webservicesoap iws_proxy_obj
i_conn = create soapconnection //创建连接
ll_result = i_conn.createinstance(iws_proxy_obj,"n_webservicesoap") //创建实例
//pb 调用 Web service 步骤
// 第一步 创建对象 , 连接 Web service
long ll_ret , ll_row
string str_proxy_name = 'qqncmsservicehttpport'
string err
soapconnection lsc_conn
//if ll_retrieve < 0 then
// messagebox('',string(ll_retrieve))
//end if
destroy lsc_conn
dw_2.ImportFile(XML!,"pbdom_doc_disease.xml")
if dw_2.update() = 1 then
相关文档
最新文档