pb 接口开发

工作需要用WebService方式做接口,折腾了半月,走了无数弯路,才初见眉目。为了避免坚守PB开发的老中青同学们以后遇到同样的问题,在此做个简要总结。
  ——by nocry115/泥草鞋

前言:
  无论哪种接口,无非2类:①开发入口,接收对方输出接口数据;②开发出口,以对方要求接口格式输出数据。对于WebService接口来说,第1种是需要我们来开发WebService服务及方法给对方调用,开发部署工作肯定多些;第2种则是调用对方的WebService服务,这方面已有很多前行的PBer为我们指路。
  调用Webservice,PB9开始就在新建Project里多了Web Service Proxy (Wizard);但需要注意的是,由于PB对windows系统的依赖,即使PB12.6对Webservice的支持也不完善。而要开发Webservice的应用服务端,至少需要PB10,在此选用了PB11.5。
  另,开发Webservice服务,windows操作系统不要用XP,开发环境缺陷会造成各种问题,曾到处发帖求助,最后发现完全是系统环境造成的,必须选用适合Webservice服务的操作系统,否则无解。

PB11.5+oracle10G(32位)+Webservice+WIN7(64位)
这里写图片描述
在这里插入图片描述

1.Oracle数据库:
  PB的亮点之一在于数据库开发。Oracle数据库9i及以下在win7以上安装不了,oracle10G不能安装64位的,否则将开发的WebService服务会出现“oracle 库 oci.dll 无法加载错误”!
  oracle10G(32位)在win7系统安装注意事项:
  a)修改database\stage\prereq\db\refhost.xml,添加:

<OPERATING_SYSTEM>

</OPERATING_SYSTEM>
1
2
3
  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
1
在系统运行cmd中输入以下命令:(假设orcl为SID)

set ORACLE_SID=orcl
emctl stop dbconsole
emctl start dbconsole
1
2
3
2.WIN7(64位)环境:
  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编写函数(如:of_insert_test()、of_insert_test2())。
  b)设置好p_yourwebservice的参数(如图):
在【General】中可选Build type为Release
这里写图片描述在这里插入图片描述

在【Deploy】中默认发布到本机IIS万维网服务
这里写图片描述在这里插入图片描述

在【Objects】中勾选上你的函数;保存后点击菜单编译Deploy Project。
这里写图片描述在这里插入图片描述

注:Web Service WSDL栏中的链接,即为你提供给对方的WSDL。
  c)在p_yourwebservice【object】中点击【Run Web Service】,看看运行结果:
这里写图片描述在这里插入图片描述

可在网页上点击你定义的函数,输入相应参数提交,测试结果。

d)实测通过Web Service对oracle数据库操作不稳定,有时成功有时失败,解决方法:
在n_yourwebservice的创建事件中:

//定义好数据库各属性,如
SQLCA.DBMS = “O90 Oracle9i (9.0.1)”
//……并加上:
connect using SQLCA;
disconnect using SQLCA;
//在你的每个n_yourwebservice数据库函数里,开头进行:

connect using SQLCA;

//函数结束前

disconnect using SQLCA;

PB11.5+oracle10G(32位)+Webservice+WIN2008Server R2(64位)
1.Oracle数据库:
如上,请安装oracle10G(32位),否则:
【Oracle library OCI.DLL could not be loaded】 的错误会等着你

2.WIN2008Server R2(64位)环境:
  a)在【计算机】右键【管理】-【角色】中添加:【Web服务器(IIS)】,其中【应用程序开发】项勾选【ASP.NET】和【ISAPI扩展】
  b)在【计算机】右键【管理】-【角色】中添加:【应用程序服务器】,勾选【.Net Framework 3.5.1】
  c)在【服务器管理器】-【角色】-【Web服务器(IIS)】-【Internet 信息服务】中:
这里写图片描述在这里插入图片描述

展开应用服务器下的【网站】,停止默认的网站,创建新网站,指向你的Webservice目录。为避免新网站的端口冲突,可重新【绑定】一个端口,如:9090。

3.PB11.5开发环境下Webservice应用移植到应用服务器:
  a)开发环境下,再编译p_yourwebservice,在【Deploy】项不要选编译到IIS,要选择“生成安装文件”(.msi)
  b)编译后的
.msi文件,copy到应用服务器运行一下。
  可查看下【服务器管理器】-【角色】-【Web服务器(IIS)】-【Internet 信息服务】中的【网站】,如果你的网站其下项显示的是网站目录(虚拟目录,还有一个同级目录是YourWebservice_root),请右键转换为【应用程序】。
(应用程序池此时自动为PBAppPool,经典的.Net Framework v2.0.50727类型 )
  在应用服务器IE上浏览下效果,注意加端口:
http://服务器IP:9090/yourwebservice/n_yourwebservice.asmx

c)远端客户IE上浏览下效果:
  http://服务器IP:9090/yourwebservice/n_yourwebservice.asmx
  如出现权限不足错误提示:
  运行时错误
  请在应用服务器上你的Webservice应用目录中,找到Web.Config,在<system.web></system.web>之间加入:

d)在开发环境下n_yourwebservice中编写了2个功能相同的函数,1个完全用SQL语句,1个用datastore进行update,奇怪的问题出现:用SQL语句的函数结果正常,用datastore的函数对string类型的字段更新失败,数值、时间类型的没有问题!
  解决方法:将数据库连接的语法选项中去掉引号项
这里写图片描述  
重新生成datastore对应的数据窗口,重新编译,发布到服务器即可。
转自:https://blog.csdn.net/nocry115/article/details/52503864

  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值