工作需要用Webservice方式做接口,折腾了半月,走了无数弯路,才初见眉目。
为了避免坚守PB开发的同学以后遇到同样的问题,在此做个简要总结——by nocry115(泥草鞋)
一楼:PB11.5+oracle10G(32位)+Webservice+WIN7(64位)
二楼:PB11.5+oracle10G(32位)+Webservice+WIN2008Server R2(64位)
前言:
调用Webservice,PB9就可以,但要开发Webservice的应用服务端,至少需要PB11,在此选用了PB11.5。
另,开发Webservice服务,windows操作系统不要用XP,开发环境缺陷会造成各种问题,曾经发帖求助,最后发现完全时系统环境造成的,必须选用适合Webservice服务的操作系统,否则无解。
1) Oracle数据库:
Oracle数据库9i以下在win7以上安装不了,oracle10G不能安装64位的,否则将出现“oracle 库 oci.dll 无法加载错误”!
oracle10G(32位)安装注意事项:
a)修改database\stage\prereq\db\refhost.xml,添加:
<OPERATING_SYSTEM>
<VERSION VALUE="6.1"/>
</OPERATING_SYSTEM>
b)修改database\install\oraparam.ini文件,添加:
[Certified Versions]
#You can customise error message shown for failure, provide value for CERTIFIED_VERSION_FAILURE_MESSAGE
#Windows=5.0,5.1,5.2,6.0,6.1 #这里前面部分内容有的,只添加6.1(win7以上的版本号)
[Windows-6.1-required]
#Minimum display colours for OUI to run
MIN_DISPLAY_COLORS=256
#Minimum CPU speed required for OUI
#CPU=300
[Windows-6.1-optional]
c)安装完后进入控制台 http://localhost:1158/em/ 如果报错,修改时区:
搜索安装后的文件:emd.properties修改:
agentTZRegion=Asia/Chungking
在系统运行cmd中输入以下命令:(假设orcl为SID)
set ORACLE_SID=orcl
emctl stop dbconsole
emctl start dbconsole
2) WIN7(64位)环境:
系统安装时自带的VC运行库,不知道是否起作用。
a)在【控制面板】-【程序】-【打开或关闭Windows功能】中:
勾选【MIcrosoft.Net Framework 3.5.1】
勾选【internet服务】-【万维网服务】-【应用程序开发功能】中的【ASP.NET】和【ISAPI扩展】
b)桌面【计算机】-右键【管理】,在【服务和应用程序】的【IIS管理器】中,将默认网站指向你的网站目录或沿用从前的
3) PB11.5开发Webservice应用:
a)建立一个p_yourwebservice服务时,将自动生成一个同名的n_yourwebservice不可视对象,在n_yourwebservice编写函数。
b)设置好p_yourwebservice的参数(如图),在【object】中勾选上你的函数;保存后点击菜单Deploy Project
c)在p_yourwebservice【object】中点击【Run Web Service】,看看运行结果:
d)实测oracle数据操作不稳定,有时成功有时失败,解决方法:
在n_yourwebservice的创建事件中:
//定义好数据库各属性,如SQLCA.DBMS = "O90 Oracle9i (9.0.1)"……
//并加上:
connect using SQLCA;
disconnect using SQLCA;
//在你的每个n_yourwebservice数据库函数里,开头进行:
connect using SQLCA;
//函数结束前
disconnect using SQLCA;