@自定义后台服务 @自定义服务 @二次开发服务 @服务开发 @Java

O2OA提供让开发者修改或者编写后台Java代码来提供额外的数据或者业务逻辑服务的模式,有效地保证了系统的整体业务适应能力和服务的灵活性。本文主要介绍O2OA系统自定义工程的创建和开发方式。

一、开发环境

  1. JDK1.8
  2. maven V3.5+
  3. 运行环境 o2server V5.0+

    二、搭建工程及配置

  4. 工程模板下载:https://git.o2oa.net/o2oa/o2custom-sample/-/archive/master/o2custom-sample-master.zip

  5. 解压o2custom-sample-master.zip,然后重命名文件夹名称为自己业务相关的名称(如:o2custom-sso)
  6. 打开系统命令窗口(cmd),进入到2步骤的文件夹,然后执行mvn install(第一次需要下载很多依赖包比较慢),直至BUILD SUCCESS。
  7. 使用idea或者eclipse导入工程(eclipse导入之前先执行mvn命令:mvn eclipse:eclipse)
  8. 工程目录解析:
    • store目录存储mvn install命令后打包的war包和jar包,其中x_base_core_project.jar包为系统包误删除(打包时需要);
    • x_program_center目录打包时生成,可以直接删除;
    • x_sampleproject_assemble_control为业务应用工程,所有业务代码都写在这里;
    • x_sampleproject_core_entity为实体类工程,如果业务不需要与数据库交互可以删除此工程。

image.png

  1. 修改工程名称及配置:
    • 根据业务修改工程名称中sampleproject的名字,这里修改为sso
    • 修改所有pom文件中的工程名称

image.png

  • 修改类包的sampleproject名称为sso

image.png

  • 修改x_sampleproject_core_entity类名称为x_sso_core_entity,并修改该类中的sampleproject名称为sso

image.png

  • 修改x_sampleproject_assemble_control类名称为x_sso_assemble_control,并修改该类中的sampleproject名称为sso

image.png

  • 修改web.xml中的sampleproject为sso

image.png

  • 最后再用maven命令或者工具进行mvn install,直至success,这样新的工程就搭建完成了。

三、业务开发

  1. 如果有自己的业务数据需要存储,那首先需要定义实体类,实体类是与数据库表映射(o2oa是通过openjpa与数据库交互,表会通过实体类在工程第一次启动的时候自动创建的,无需手工创建),可以拷贝或修改SampleEntityClassName类,然后添加自己的业务属性

image.png

  1. 添加或修改实体类后,需要在x_sso_assemble_control类的containerEntities中添加或修改对应的实体类,多值逗号隔开

image.png

  1. 业务接口开发,后端业务统一提供restful接口,业务模块在com.x.sso.assemble.control.jaxrs下开发,现在有示例sample模块,根据需要修改名称或添加模块,然后修改或增加action类Anonymous
  2. image.png
  3. 权限过滤配置,根据业务需要定义接口是否需要权限访问,JaxrsServicePathFilter需要权限访问,AnonymousJaxrsServicePathFilter不需要权限访问,把业务地址配置到相应类中

image.png

  1. 获取当前登录用户及用户组织查询

image.png

  1. 应用模块自定义配置,o2server V5.3+版本可以读取自定义配置文件,定义的配置文件同平台配置存放在o2server/config下,平台提交接口获取,之前的版本需要自定义配置文件在war中,然后自行读取。

image.png

四、部署

通过mvn install命令打包,打包后会生成war包和jar包到项目的store目录下,war包部署到o2server/custom下,jar包部署到o2server/custom/jars目录下,如果项目有额外引进第三方jar包(确认平台未引进,平台使用的jar包在o2server/commons/ext目录下)同样部署到o2server/custom/jars目录下,项目如果有通用帮助类需要在前端脚本使用,也可以打包成jar包部署在o2server/custom/jars目录下。
应用包部署也可以通过web端部署,管理员登录平台进入系统设置——系统部署——服务部署,先部署custom的jar,再部署custom的war,部署好后需要重启o2server。
image.png
部署成功与否可以访问http://*:20030/x_program_center/jest/list.html检查api列表中是否有部署的模块(需管理员登录o2server),如:
image.png


推荐文章:

服务集成-平台数据字典API使用说明
2021-03-15
O2OA允许用户通过脚本灵活地完成数据字典相关的增删查改操作。本文主要介绍完成平台数据字典操作相关的API和使用方式
开发知识-Angular篇:在O2OA平台中使用Angular
2021-02-07
  Angular也是一个非常流行的前端开发框架,它是使用TypeScript作为开发语言,再通过编译器编译为浏览器可执行的Javascript,所以我们无法在
开发知识-中标麒麟安装达梦数据库(DM8)
2021-02-07
环境说明操作系统版本:NeoKylinLinuxAdvancedServerreleaseV7Update6(Chromium)1.前期准备工作1.1数据库下载
服务集成-表单界面上自定义弹出选择器功能
2021-03-15
O2OA允许用户对表单进行自由的功能定制,可以增加自定义的组件和插件。本文介绍如果在表单界面上自定义弹出选择器的功能。
常见问题-服务器错误:can not decrypt token
2021-02-07
cannotdecrypttoken服务端无法解开token,可能的原因是,xadmin的密码刚刚修改过而前台没有刷新页面.重新刷新前台页面即可,app端需要重
神经网络
2021-02-19
O2OA支持配置神经网络模型,协助完成办公系统中的信息推荐,意见选择等功能。它是一种模仿动物神经网络行为特征,进行分布式并行信息处理的算法数学模型,通过创建神经
常见问题-集群配置后启动报错:NullPointerException
2021-02-07
一、linux服务器先用start_linux.sh启动,再用console_linux.sh输入命令二、node.cfg指定的内容与config/node_*
平台维护-使用Web端运行服务器管理命令
2021-03-09
平台提供web管理端方便快捷查看服务器当前状态,同时方便管理服务器。实现平台的易用性。本篇主要介绍如何使用浏览器访问系统查看集群运行日志以及运行服务端命令。
报销申请使用手册
2021-02-19
O2OA报销申请是使用平台能力自定义开发的一个业务流程,它适用于企业内员工财务报销申请的电子审批。员工新建报销申请流程,确定报销申请信息,发起审批、财务处理、备
系统集成-SSO与单点认证
2021-02-26
O2OA平台提供灵活的系统集成方案,让企业信息平台与各类第三方系统进行集成。本篇主要介绍如何在O2OA中与其他系统实现单点登入。

results matching ""

    No results matching ""