用PB、Jboss和PBASP开发三层应用
PB开发三层应用一般是采用Easerver做应用服务器,但是EAserver的价格昂贵所以在一些小型应用中不得不放弃采用PB来开发网络应用。其实Sybase公司除了推出EAserver还提供了一个插件工具Powerbuilder Application Server Plug-In,使得PB可以利用Jboss、weblogic、websphere来开发三层应用。本文将介绍如何利用这几个工具来开发一个简单的三层应用程序。
一、配置服务器
服务器需要安装JBoss、PBASP,比较麻烦,为简化安装,可以按照下面的方法来配置。
1、下载本站 下载/serever目录中 server.part01.rar 至 server.part20.rar共20个文件,然后解压到E:server目录下(暂时只能放到该目录下面);
2、运行E:\server\setup\regyoyo.exe , 运行后需要重启电脑
3、运行E:\server\setup\setup(1).bat,启动Jboss;
4、运行E:\server\setup\setup(2).bat, 配置插件;
5、关闭Jboss,然后运行E:\server\pbappserver\bin\start-jboss.bat,重新启动服务器,出现iiops://主机名:2002(大功告成!)
二、在PB开发环境中连接服务器
打开PowerBuilder11,点击 tool / Application Server Profiles。点击 Add 出现配置服务器的页面:
![1](http://www.pbjboss.cn/pbjboss/wp-content/uploads/2010/01/1-300x240.jpg)
Profile Name:自己定义; Server type :服务器的类型,选JBoss; Server Name:服务器的名称或是IP ;Port:端口,默认9000
Login Name:默认
admin@system (图片上的写错了,懒的改了); password: 默认you0926 ( 运行 E:\server\pbappserver\bin\change-admin-password.bat 可以修改密码 )
点击Test测试服务器的连接。
三、 创建服务器端程序
在PB11中新建一个WorkSpace,起名为TestPB。然后在创建一个Target,选择 Application Server Component 创建服务器组件。
第一步,介绍服务器组件向导,直接next ;
第二步,选择start from scratch 重头建立一个组件 , 点击 next ;
第三步,告诉你相关步骤,直接next ;
第四步,填写要建立的project的相关信息,点击next;
第五步,可以增加你自己的library,点击next;
第六步,设置组件的名称,点击next;
第七步,设置服务器组件名称,点击next;
第八步,选择对应的服务器,选择刚刚创建的yoyo,点击next;
第九步,输入包的信息,Package Name可以自定义,这里输入testcom。Java package可以不填,点击next;
第十步,设置role name,不知道啥东西,不填,点击next;
第十一步,选择是否支持实例池,选择support,点击next;
第十二步,选择是否需要数据连接,选择Not supported,暂时不需要数据库,可以以后设置,点击next;
第十三步,设置接口一些参数,现在不理它,点击next;
第十四步,是否要支持debug等,不会搞,也不理它,点击next;
第十五步,是否要使用web service,不用,点击next;
第十六步,不知道有啥用,点击next;
第十七步,准备创建服务器组件,点击Finish。
完成后出现如下的界面:
n_appscomp即为服务器组件,其实就是一个不可视对象,在n_appscomp中创建一个函数 string hellopb() ,返回字符串“hello PB”,等会我们要在客户端调用。
点击 p_appscomp ,出现发布服务器组件的窗口,点击 Deploy Project 按钮,会自动将该组件发布到Jboss服务器中。
四,编写客户端程序
(一) 创建客户端的代理
新建一个application,就叫pbjboss.pbl。在新建一个library,名字叫clientproxy.pbl。
在pbjboss.pbl中新建一个新的project,选择application server proxy,这个project功能是根据服务器端的组件生成本地的代理,这样调用服务器端的组件就跟调用本地组件一样了。
Deployment PBL 选择刚刚建立的clientproxy.pbl。
Profile 选择第二步配置的服务器名称。
点击Components后可以看到之前发布的组件testcom,选择并确认。
设置完成后,保存project为 p_proxy后,执行该project。
clientproxy.pbl中就是服务器组件的本地接口了(比编写一个Java Bean还是容易很多了)。
(二) 编写连接服务器代码
先建立两个全局变量 connection myconnect 和远程对象代理n_appscomp n_basecomp,
然后在project的open事件中写以下代码:
int ll_rc
string sRtn
myconnect = create connection
myconnect.driver = “jaguar”
myconnect.location = “iiop://172.20.1.180:2000″
myconnect.application =”pbtest”
myconnect.userID =” admin@system”
myconnect.password = “密码”
myconnect.options=”ORBProxyHost=’JBOSS服务器IP’,ORBProxyPort=’2000′”
myconnect.location = “iiop://172.20.1.180:2000″
myconnect.application =”pbtest”
myconnect.userID =” admin@system”
myconnect.password = “密码”
myconnect.options=”ORBProxyHost=’JBOSS服务器IP’,ORBProxyPort=’2000′”
ll_rc = myconnect.ConnectToServer()OK!全部完成!
IF ll_rc <> 0 THEN
Destroy myconnect
Destroy myconnect
Messagebox(“提示”,”连接失败”)
Else
myconnect.CreateInstance( n_mycomp, “testcom/n_appscomp” )
sRtn = n_mycomp.hellopb()
Messagebox(“调用服务端组件”,sRtn)
destroy n_mycomp
myconnect.disconnectserver( )
myconnect.CreateInstance( n_mycomp, “testcom/n_appscomp” )
sRtn = n_mycomp.hellopb()
Messagebox(“调用服务端组件”,sRtn)
destroy n_mycomp
myconnect.disconnectserver( )
END IF
备注:由于此PBASP是试用版本,只有30天使用期限,所以当安装后可能出现无法使用的情况。请联系QQ:109592358