我今天做了這個“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就調用成功了:
調用成功結果圖: