本篇讲解自定义服务的工程搭建与业务开发。先说明开发环境所需的 JDK、maven 与运行环境版本,再给出工程模板的解压、改名与导入步骤,并逐一解析各目录的职责。随后介绍实体类定义、接口开发、权限过滤与配置文件约定,最后说明 war 包、jar 包在 custom 目录下的部署方式、web 端部署入口以及部署结果的检查地址,适合有一定 Java 基础的开发人员参考。
JDK 11
maven V3.5+ maven 配置建议引入阿里的 maven 仓库
运行环境 o2server V6.1及以上
工程模板下载:https://gitee.com/o2oa/o2oa_custom/repository/archive/master.zip
将工程模板压缩包解压为 o2custom-sample-master.zip 后,把文件夹重命名为与业务相关的名称,例如 o2custom-sso。
打开系统命令窗口(cmd),进入上一步重命名后的文件夹,执行 mvn install。首次执行会下载较多依赖包,速度可能偏慢,请耐心等待直至出现 BUILD SUCCESS。
随后使用 idea 或者 eclipse 导入工程;若使用 eclipse,导入前需先执行 mvn eclipse:eclipse 生成工程文件。
工程目录解析:
store 目录用于存放执行 mvn install 后打包生成的 war 包与 jar 包,其中 x_base_core_project.jar 是系统包,打包时需要用到,不能删除;
x_program_center 目录在打包过程中自动生成,可以直接删除;
x_sampleproject_assemble_control 是业务应用工程,所有业务代码都写在该工程中;
x_sampleproject_core_entity 是实体类工程,如果业务不需要与数据库交互,可以将该工程删除。
修改工程名称及配置:
把工程名称中的 sampleproject 改为自己的业务名称,本篇示例改为 sso;
同步修改所有 pom 文件中的工程名称;
将类包中的 sampleproject 名称改为 sso;
把 x_sampleproject_core_entity 改名为 x_sso_core_entity,并修改该类中的 sampleproject 名称为 sso;
把 x_sampleproject_assemble_control 改名为 x_sso_assemble_control,同样修改该类中的 sampleproject 名称为 sso;
最后再用 maven 命令或者工具进行 mvn install,直至 success,这样新的工程就搭建完成了。
如果有自己的业务数据需要存储,那首先需要定义实体类,实体类是与数据库表映射(o2oa 是通过 openjpa 与数据库交互,表会通过实体类在工程第一次启动的时候自动创建的,无需手工创建),可以拷贝或修改 SampleEntityClassName 类,然后添加自己的业务属性
新增或修改实体类后,需要在 x_sso_assemble_control 类的 containerEntities 中登记对应的实体类,多个值之间用逗号分隔。
业务接口开发方面,后端业务统一提供 restful 接口,业务模块在 com.x.sso.assemble.control.jaxrs 下开发。工程中已有示例 sample 模块,可根据需要修改名称或新增模块,然后修改或新增对应的 action 类与 Anonymous 配置。
权限过滤方面,可根据业务需要决定接口是否需要鉴权:配置在 JaxrsServicePathFilter 中的地址需要权限访问,配置在 AnonymousJaxrsServicePathFilter 中的地址无需权限即可访问,把业务地址配置到相应类中即可。
获取当前登录用户及用户组织查询
应用模块的配置文件与平台配置一样存放在 o2server/config 下,文件名以 custom_ 开头的 json 文件即为应用自定义配置。
第三方 jar 包使用,开发过程中需要引入平台不存在的第三方 jar 包在 pom 文件引入即可,部署的时候需要把额外引入的 jar 包放到 o2server/custom/jars 目录下,但 V6.4及以上版本把额外的 jar 包放到工程的 ext 目录即可,部署的时候不需要再把包放到 o2server/custom/jars 目录下
通过 mvn install 命令打包,完成后会在项目的 store 目录下生成 war 包与 jar 包。部署时,war 包放入 o2server/custom,jar 包放入 o2server/custom/jars。如果项目中有通用帮助类需要在前端脚本(例如服务器管理的接口脚本)中使用,也可以打包成 jar 包部署到 o2server/custom/jars 目录下。
应用包还可以通过 web 端部署:管理员登录平台后进入系统设置——资源部署——部署自定义服务,先部署 custom 的 jar,再部署 custom 的 war,部署完成后重启 o2server 使其生效。
部署成功与否可以访问http://{ServerIP}:20030/x_program_center/jest/list.html检查api列表中是否有部署的模块(需管理员登录o2server),
请注意,V7.2 之前的版本端口为 20030:
http://{ServerIP}:20030/x_program_center/jest/list.html
相关内容
上一篇:没有了!