暂时分数不够,事后再加也可。
PB版本:9.0.3 Build8836
代码1:
SoapConnection conn
servicehttpsoap11endpoint test_ws
long rVal
conn = create SoapConnection
//创建服务实例
rVal = Conn.CreateInstance(test_ws, "servicehttpsoap11endpoint","http://localhost:8080/cc/services/ccService?wsdl")
代码2:
CONNECT USING sqlca;
如上单独执行[代码1]一切正常,
但是若将[代码1]放置[代码2]之后,则会在rVal = Conn.CreateInstance这步出现异常,异常描述如下:
------------------
PowerBuilder Application Execution Error(R0021)
Application terminated
Error:Bad runtime function reference at line 26 in function g_getetlfile_ws of object **
这里不是函数没有放到主pbl的问题,现在我已经将他们都放过去了。并且在一个函数中只调整两段代码的顺序即出现成功\失败的不同情况。
难道是它们的dll冲突造成的?
------解决方案--------------------
代码1,代码2之间有没有代码
程序是否引用了其他pbni object(*.pbx)
CreateInstance用try包起来试试
g_getetlfile_ws 写啥了
------解决方案--------------------
从上面代码看楼主的webservice服务器是本机,是不是里面进行了数据连接操作,而且使用的ODBC
------解决方案--------------------
我出现过类似的错误(pb12),只是跟连接没有关系,只要 CreateInstance() 就报 runtime 错!
原因是:system32 目录下有老版本 pb 的 dll,它与../sybase/share/powerbuilder 中的新版本的同名 dll 冲突,删除或覆盖老 dll 即可(libeay32.dll)。