JAVA使用CXF開發webservice比較方便,但PB創建代理物件呼叫時,報錯: unknown wrapper element found…… ,說明目前PB不支持JAVA使用CXF開發的websevice。
研究發現,我們可以使用C#生成com組件封裝為DLL函式,供PB呼叫。這種方式理論上,應該適用于PB的任何版本。
在這里簡單使用VS2013 C#與PB9進行說明
1、使用C#呼叫Web Service生成dll--可以網上找一些例子參考
例: soapws//命名空間
DispId(1)] //介面方法的系結號
string PBSOAP(string jsonStr);
2、初始化DLL環境
建立PB呼叫目錄c:\soapws;將C#生成的dll與tlb檔案拷貝出來,默認在專案的bin\Debug目錄下。
并找到.Net 4.0下的RegAsm.exe檔案,也拷貝到該目錄。然后在作業系統運行cmd,輸入:
regasm soapws.dll /tlb: soapws.tlb
回車顯示成功注冊資訊。
3、用PB呼叫C#的dll
在PB中呼叫該C#DLL,代碼如下:
OleObject OleSOAP
OleSOAP = Create OLEObject
//SOAPws1為C#中命名空間(namespace) ,Class1為C#中類名
i = OleSOAP .ConnectToNewObject("soapws.Class1")
if i <>0 then
MessageBox("提示","PB呼叫C#COM組件(soapws.WebService)失敗!")
return
end if
string ls_json
ls_json = trim(mle_1.text) //傳入引數
//PBSOAP介面方法
ls_ret =OleSOAP .PBSOAP(ls_json)
MessageBox('1',ls_ret)
uj5u.com熱心網友回復:
補充:如果使用PB11,則可以使用.net 方式連接也可以實作PB呼叫java使用CXF開發的webservice,操作步驟如下:
1.按照默認使用的是EasySoap Engine生成呼叫webservice工程:例如:生成soapwebservice工程,部署完成后,PB不能夠呼叫
2.在部署soapwebservice前打開工程,修改使用的是EasySoap Engine吸怪為使用.Net引擎(Use .Net Engine),然后再進行部署,這樣PB就能夠呼叫了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/10081.html
標籤:基礎類
上一篇:Pb中這些函式代表的意義?
