資源描述:
《pb調(diào)用webservice》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、webservice服務(wù)器端會(huì)提供wsdl接口文檔,pb里面用web?service?proxy?wizard從wsdl生成對(duì)象,再調(diào)用即可(注意把c:program?filessybasesharedpowerbuilder下面的pbsoapclient90.pbd加入target),代碼樣例:SoapConnection?lsc_connsoapservice?lproxy_objString?ls_proxy_name?=?"soapservice"http://生成的代理對(duì)象名稱String?ls_url?=?"htt
2、p://localhost:8080/axis/services/SoapService"http://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("錯(cuò)誤",?"調(diào)用失敗,
3、錯(cuò)誤號(hào)碼:"?+?String(li_ret))Return?End?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?+?"~n
4、message:"?+?&lst_result.reason.message?+?"~ndesc:"?+?lst_result.reason.desc?)注意pb調(diào)用webservice只能返回簡(jiǎn)單的int?string類型,復(fù)雜的結(jié)構(gòu)會(huì)出錯(cuò)怎么樣在pb9里面調(diào)用WebServicepb9也出來了,速度夠快的,大概看了一下,與pb8比較,增加的功能不多,主要是WebService,Xml和Ejb.我就感受了一下pb9的WebService功能,與大家共享。我們用一個(gè)實(shí)例來說明:新建應(yīng)用,這些步驟與pb8一致的。然后建立一個(gè)W
5、ebServiceProxyWizard,下一步會(huì)提示你輸入WSDL文件,點(diǎn)擊瀏覽選擇,假設(shè)是C:inetpubwwwroot的service1.wsdl文件。點(diǎn)擊下一步,會(huì)自動(dòng)出現(xiàn)WSDL文件中的Service.點(diǎn)擊下一步,系統(tǒng)默認(rèn)選擇ServiceSoap,緊接著輸入proxyname(代理對(duì)象名),輸入test_ws.后面的幾項(xiàng)按默認(rèn)即可。完成后是編譯代理對(duì)象的界面。會(huì)出現(xiàn):WebServiceGeneratorProjectStatusDeploymentPBL:E:programpbwebservice
6、w_app.pblClearPBLonbuild:NoConfirmoverwrites:NoWSDLLocation:file://E:programpbwebserviceservice1.wsdlServicesselected:ServiceService1:Service1Soap可以在屬性中設(shè)置,也可以不用去管。點(diǎn)擊編譯的綠色圖標(biāo),好了,一個(gè)代理對(duì)象生成了。在左邊的treeview中可以看到如:test_wsservice1soap的東西。點(diǎn)擊加號(hào)的圖標(biāo),在function中可以看到里面的我們定義的sh
7、ow(stringyourname)returnsstring.好了最重要的一步已經(jīng)完成了,我們來測(cè)試一下:建一個(gè)windows,添加一個(gè)文本框和按鈕控件。在cb_1.click事件寫入:SoapConnectionconnTest_wsservice1soaptest_wslongrVal//stringstr_endpoint//str_endpoint="http://localhost/webserver/service1.asmx?WSDL"conn=createSoapConnectionrVal=Conn.Cr
8、eateInstance(test_ws,"test_wsservice1soap")sle_1.text=test_ws.show("你的參與是我們最大的支持")destroyconn好了,保存,會(huì)提示SoapConnection未定義。增加PBSoapClient90.pbd到庫(kù)列表中