Cordys BOP 4平台开发入门实战演练——Webservices开发(初级)
0.文章导读? ? ? ??本文档针对Cordys BOP-4 WS-AppServer基础功能进行验证和快速开发指导。(高级实践文档请参考后续文档)。 0.1.WS-AppServer概述? ? ? ? WS-AppServer是Web Service Application Server的简称,是Cordys平台中基于数据库的Java业务逻辑开发层,其最根本的特性如下: ?? ? ? ?(1)连接数据库
?? ? ? ?(2)实现Java应用逻辑
?? ? ? ?(3)与XForm紧密集成,可以用后端逻辑控制前端展现,比如某页面控件是否隐藏或只读,某个下拉列表有哪些选择,某个字段输入是否合法
?? ? ? ?(4)与Orchestrator的紧密集成
0.2.文档导读目录及结构0.3.WS-AppServer结构? ? ? ? WS-AppServer组件相互依赖,主要由如下几部分组成:
1. Workspace的新建(1)在租户中新建Workspace 新建Workspace,如下图所示,填写“Name”,我这里新建名称是“Training_xiaoyw201503”。 (2)为Workspace配置SVN 2. WS-Appserver Container的配置
(1)System Resource Manager下,新建“Service Group”
(1.1)首先选择“System Resource Manager” (1.2)选择Application Connectors新建 Application Connectors链接点是WS-AppServer。 (2)配置Service Group细节 (3)配置Service Container细节 (4)为WS-AppServer配置细项 (4.1).配置数据库连接 (5).配置连接点Connection Point 手动启动新建Service Container 3. DB Metadata的新建通常在项目中建立如下文件夹: WEB Java DB Meterdata BPM Web Service WS-AppServer Packeage (1)在DB Meterdata上,点击鼠标右键,如下图操作,新建DB Meterdata。 上图中,第4步输入“data”是为了快速查询对象,鼠标点击“Database Metadata”,配置数据库链接。 如上图所示,输入“Database Metadata”名称为“xiaoyw Database Metadata”,WS-AppServer Service选择新建的“test_xiaoyw” Service Container(数据库链接)。 接着,选择数据源,通过鼠标点击“Retrieve all tables”可以检索所以数据库表,也可以通过中间的Search in database输入框检索,输入“*”,也是表示全部表的检索,如果检索某个或某些表,直接输入名称或部分,再鼠标点击“Search in database”按钮查询检索即可。 按上图所示,选中dept、test_zss表,使用按钮“>”转移到右侧。 4. 基于WS-Appserver的开发和使用(1)新建WS-AppServer Packeage (2)基于新建的WS-AppServer生成Java源代码、Jar包 在上图中,鼠标点击图标 在上图中选择表dept、test_zss,鼠标点击“Update”按钮。 按上图,通过选择框来选择由Cordys平台生成所需get方法。 按上图,通过Cordys平台生成Java及其JAR包代码,鼠标点击 按上图所示,先选择数据表对象dept、test_zss,再鼠标点击图中下部按钮“Generate”,生成Java代码。如下图所示,通过操作界面页底,鼠标点击“Workspace Documents”页面来回看Java代码。 上图展示出生成Java代码。 (3)基于新建的WS-AppServer生成Webservices 按上图所示,鼠标点击图标 按上图所示,先通过选择框选择数据库表对象dept和test_zss,再鼠标点击“Next”按钮。 按上图所示,先输入Web Service Name为“getDept”,然后调整Web Services Folder Name为“WebService”(图中第3步)。最后,鼠标点击“Generate”按钮。 通过操作界面页底,鼠标点击“Workspace Documents”页面来切换回看Webservices列表。 (4)发布Java类到租户中(当前开发环境) 注意,最好选中整个“Java”文件夹进行Java代码发布,按鼠标右键弹出上图发布菜单,鼠标点击“Publish to Organization”发布。 (5)发布Webservice到租户中 按上图所示,选中整个WebService文件夹,击鼠标右键弹出如图所示菜单,鼠标点击“Publish to Organization”选项,发布Webservices。 (6)自动/手动绑定到Web Service Interfaces中 正常顺序操作时,Webservices自动绑定到Web Service Interfaces中,但是,本次实践过程中,频繁删除已经发布的Webservices,这样,会有Webservices残留。 如上图所示,我所建立的“test_xiaoyw” Service Groups,通过鼠标右键弹出菜单选择“Properties”选项,可以看到先前所绑定大量Webservices,选中所有选择框,点击“红叉”操作,删除涉及到我的Webservices。 (7)手动绑定到Web Service Interfaces中 在删除相应的Webservices后,鼠标点击“绿色加号”,如图所示弹出窗口,通过“-Select Organization/Package-”选择开发者所处的租户“mssoa”,从其海量Webservices中,选择我所开发的Webservices “getDept.xiaoyw...”,通过添加按钮“Add”,加入到下表中,最后鼠标点击“Done”按钮,完成绑定工作。 按上图所示方式,重新启动Service Containers “xiaoyw_WS_AppServer”。 5.通过SVN使用Eclipse代码导入到Eclipse中 (1)上传代码到SVN 为了保证代码最新及准确,请先更新代码到本地再提交。 (2)在Eclipse中,检出代码(首次需要检出项目) (2.1)从SVN中检出项目到Eclipse中新建项目 (2.2)把Java代码导入src为源文件 (2.3)配置Build Path资源(依赖类库和外部包) (2.4)更新代码 6. 单表的增删改查(1)测试所发布的Webservices有效性,查询 在Webservice文件夹中要进行测试的Web service,按右键弹出窗口,选中“Test Web Service Operation”。(注:重建Webservices名称为getDept,自此不重新更新插图) 如上图所示选中GetDeptObject,击鼠标右键弹出菜单,选择“Test Web Service Operation”进行测试。 如上图所示,把SOAP Request中<ID>中的Parameter替换成“5”,再鼠标点击按钮“Invoke”,然后查看SOAP Response。 (2)插入操作 测试请求报文如下: <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> 在测试查询结果如上图所示,id=5的更新name为xiaoyw20150329。 上面报文中<old>为删除操作,<new>为插入操作。 7.自定义Webservices开发(1)自定义插入操作Webservice。 仍回到“xiaoywWSAppServerPackage” WS-AppServer Packeage操作窗口。 按上图所示,选择dept表,击鼠标右键弹出如图所示菜单,选择“Add”菜单,再选“Method”选项。 (2)编辑新方法属性 注:上图为旧图,Package是“xiaoywWSAppServerPackage”。方法命名为insertDept,插入操作无返回值,并选中“SOAP”选择框。 (3)为方法提供参数 按上图所示操作,鼠标点击绿色“+”,增加输入参数,本例使用两个参数,分别为v_id和v_name,最后保存。 (4)接下来生产Java代码、Webservices。 由于本次是新增方法,这样需要重写扩展类,需要选中“Overwrite Extension Classes”,也要选中相关的表,最后鼠标点击“Generate”按钮,生成Java代码。 (注:此图代码中第一个参数设置时错误,更新为int) 如上图所示,新的Java代码中新增insertDept方法,需要在此编写自定义代码,新增内容如下所示: ? ? public static void insertDept(int v_id,String v_name) 并且需要导入: ? ??import com.cordys.cpc.bsf.busobject.DMLStatement; 上述代码编写,最好是Eclipse,以及配合SVN协调代码同步。 (5)发布Webservice 由于Webservices已经存在,在上图中需要选中“Existing”,再通过弹出窗口选择Web Service Interface。 如上图所示,在WebService中,可以看到新增“insertDept”方法,接着再对WebService进行整体发布。发布结果如下图所示。 (6)测试插入操作 选中WebService中insertDept方法进行测试,测试报文如下。 <SOAP:Envelope xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"> 再查询测试刚刚插入内容,结果如下,成功。 草稿完成于2015年3月29日。 完善于2015年4月1日 参考: 《WS-AppServer Fundamental Practice in BOP-4》Cordys公司 2012年 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |