当前位置: 代码迷 >> PB >> PB9 web service Deploy 出错
  详细解决方案

PB9 web service Deploy 出错

热度:206   发布时间:2016-04-29 06:12:05.0
PB9 web service Deploy 报错
//请高手,找百度几天了,都没有人碰到过这样的错误



Web Service Generator Project Status

Deployment PBL:  H:\LPS SFC\aupdate.pbl

Clear PBL on build:  No

Confirm overwrites:  No

WSDL Location:  http://icm040/SICWS/SICWebService.asmx?wsdl

Services selected :
Service SICWebService:
SICWebServiceSoap
SICWebServiceSoap12
Service tns__ClientParasWS:
Entire Service Selected

Generation Errors:
Error: The object tns__clientparasws had fatal compile error(s).
The source for tns__clientparasws has been saved as C:\Users\ADMINI~1\AppData\Local\Temp\tns__clientparasws.srs.
The error(s) for tns__clientparasws have been saved in file C:\Users\ADMINI~1\AppData\Local\Temp\tns__clientparasws_srs.log
------解决方案--------------------
找一下C:\Users\ADMINI~1\AppData\Local\Temp\tns__clientparasws_srs.log 
这个文件,打开看一下里面是不是有出错的具体原因
------解决方案--------------------
引用:
是asmx里的一个结构的变量类型是ArrayOfArrayOfString 导致的错误,
我把它改成了ArrayOfString就没报错了


这个问题我也碰到过,pb的webservice代理不支持ArrayOfArrayOfString,即二维数组

不过你可以使用来mssoap实现,这个是支持的
------解决方案--------------------
可参考

使用PB6.5调用Web Service的办法
 
从PB8.0/9.0开始,就已经提供Web Service Proxy功能,能够直接进行相关程序的编写。

但是,部分老项目使用PB6.5开发

研究后发现,其实PB6.5要操作Web Service也挺容易。

 


说明:1.本例子用于pb对Web Service的操作。
       2.pb可使用两种方式实现。
   3.proxy方式使用pb9自带的Web Service Proxy功能实现,需要将sharedPowerBuilderpbsoapclient90.pbd包含到应用中来。
   4.OLE方式调用MSSOAP.SoapClient实现,此方式可用于低版本pb,如pb6.5。
   5.MSSOAPLib.SoapClient的获得,请从microsoft搜索soap toolkit下载soapsdk.exe

OLEObject MSSOAPLib1
MSSOAPLib1= CREATE OLEObject
long ll_result 
ll_result = MSSOAPLib1.ConnectToNewObject("MSSOAP.SoapClient")
if ll_result <> 0 then
messagebox("系统提示","连接MSSOAP.SoapClient失败!返回参数:"+string(ll_result))
end if
MSSOAPLib1.mssoapinit("http://172.17.99.20:9090/yygh/services/Query?wsdl")
mle_content.Text = MSSOAPLib1.sendXml("Sina", sle_userid.text, sle_passwd.text, sle_mobileno.text, mle_content.text, "new")
  相关解决方案