O2OA开发平台实施入门指南
O2OA(翱途)开发平台,是一款适用于协同办公系统开发与实施的基础平台,说到底,它也是一款快速开发平台。开发者可以基于平台提供的能力完成门户、流程、信息相关的业务功能开发。
既然定位为开发平台,那么开发小伙伴们一些基础的开发能力也是必须要掌握的,本文从平台的安装部署和开发实施两个方向为大家罗列一下需要掌握的技术以及学习的路径,希望对大家有帮助。
一、平台安装部署技术需求
平台的安装部署大多数操作与服务器命令有关,包括但不限于文件操作,进程操作,文件操作,权限操作等,以下为大家逐一说明:
1、CPU架构查询
部署O2OA需要根据服务器硬件环境下载合适的服务器安装文件。
如果是Windows操作系统,则可以直接选择选择Windows环境下的安装文件。
但如果是Linux环境,使用命令了解当前主机的硬件架构类型,可以在控制台输入命令行:
arch
O2OA支持x86、MIPS、ARM芯片架构。
2、文件操作
1)下载与解压(Linux环境)
- wget命令的使用
wget命令是Linux系统用于从Web下载文件的命令行工具,支持 HTTP、HTTPS及FTP协议下载文件,而且wget还提供了很多选项,例如下载多个文件、后台下载,使用代理等等,使用非常方便。接下来就介绍一下wget的使用方法。
wget [options] [url]
例如,使用wget下载O2OA V8.0.4的安装文件:
wget https://download.o2oa.net/download/o2server-8.0.5-windows-x64.zip
wget命令的使用的详细介绍请参考:《wget命令详解》
- uzip命令的使用
unzip 命令用于列出、测试和提取 ZIP 存档中的压缩文件。如果 unzip 不跟任何选项(默认行为),会将指定的 ZIP 存档文件解压到当前目录。
unzip [-Z] [OPTIONS] [ZIP_FILE...] [FILE...] [-x FILE...] [-d EXDIR]
[ZIP_FILE…] 表示 ZIP 存档文件,
[FILE…] 表示待处理的 ZIP 存档文件中的文件列表,
[-x FILE…] 表示不处理的文件列表,
[-d EXDIR] 表示解压缩后的文件存放的目录。
文件名均可使用通配符表示。
注意,unzip 可以不跟任何选项和参数,单独执行 unzip 将打印简要帮助信息。
如,将o2server解压到当前目录中:
unzip o2server-8.0.5-windows-x64.zip
uzip命令的详细使用说明请参考:《linux unzip 命令》
2)权限与拥有者设置(Linux环境)
Linux系统有严格的文件权限控制,如果未使用root进行相关的文件操作,可能会导致系统在运行时无法创建文件,造成一系列文件权限相关的错误。在此,我们介绍一下关于文件操作相关的命令:
- chown命令的使用
Linux chown(英文全拼:change owner)命令用于设置文件所有者和文件关联组的命令,chown 需要超级用户 root 的权限才能执行此命令。chown更改每个给定文件的用户和/或组所有权。如果只提供了所有者(用户名或数字用户ID),则该用户将成为每个给定文件的所有者,并且不会更改文件组。
chown [参数] user[:group] 文件
如,将o2server目录以及所有的文件授权给oauser用户组的oauser用户:
chown -R oauser:oauser o2server
chown命令的详细使用说明请参考:《Linux命令之chown命令》
- chmod命令的使用
Linux chmod(英文全拼:change mode)命令是控制用户对文件的权限的命令。
chmod [-cfvR] [–help] [–version] mode file…
如,进入o2server目录之后,将所有的文件以及下级目录文件的权限都改成777:
chmod -R 777 *
chmod命令的详细使用说明请参考:《Linux中:chmod命令详细解释》
3、端口占用查询
如果O2OA需要监听的端口被占用,在服务器启动时会提示端口被占用,无法正常启动。此时需要管理员关闭某些应用,如IIS,Apache或者调整O2OA需要的端口号。本节我们介绍如何查询服务器被占用的情况。
1)如何查询开放的端口
Windows系统:
查询端口监听程序所在的进程号(PID)
netstat -aon
- 在Windows任务管理器里,查看该进程号所对应的应用程序名称即可。
请参考:《O2OA帮助手册服务器端口冲突和端口修改》 https://www.o2oa.net/cms/tech/436.html
Linux系统:
netstat -an|grep :::端口号
2)如何查询端口被什么进程占用
Windows系统:
- 查询端口监听程序所在的进程号(PID)
netstat -aon|findstr "80"
- 在Windows任务管理器里,查看该进程号所对应的应用程序名称即可。
Linux系统:
sudo lsof -i :80
4、停止指定的进程
1)Windows系统
- 建议按正常关闭应用软件的方式停止进程,比如Apache服务,Nginx服务,IIS服务,Oracle数据库等,结束进程的方式可能会对正在运行的应用造成影响,导致文件损坏。
- 查询端口监听程序所在的进程号(PID)使用命令:netstat -aon|findstr "80" ,查询占用80端口的进程号;
- 在Windows任务栏上使用右键(或者快捷键CTRL+SHIFT+ESC)打开任务管理器,在详细栏里,根据PID将所有的应用程序排序,之后找到进程编号对应的应用程序进行关闭。
2)Linux系统
- 建议按正常关闭应用软件的方式停止进程,比如Apache服务,Nginx服务,Oracle数据库等,结束进程的方式可能会对正在运行的应用造成影响,导致文件损坏。
kill -9 进程号
5、防火墙 Firewall操作
如果不关闭防火墙或者防火墙设置不正常,会导致服务启动正常,端口正常监听,外部计算机却无法正常访问服务器,打开O2OA登录页。
1)Windows:请参考《Windows 系统命令行打开、关闭系统防火墙》
https://forum.huawei.com/enterprise/zh/thread/580939811705995264
2)Linux:请自行百度或者参考《CentOS7关闭防火墙》
https://blog.csdn.net/a654540233/article/details/129700527
6、关闭Windows的IIS服务
请参考《关闭Windows自带的IIS服务》
关闭Windows自带的IIS服务_关闭iis服务_☜lgl☞的博客-CSDN博客
二、如何查看日志或者发现问题
1、最常用的前端调试方法F12
参考文章《前端开发之浏览器F12代码调试教程(谷歌浏览器为例)》
前端开发之浏览器F12代码调试教程(谷歌浏览器为例)_前端f12 调试_前端日记_林的博客-CSDN博客
推荐视频《【浏览器调试工具精讲】Chrome Dev Tools精讲,前端必看!》
https://www.bilibili.com/video/BV1KM4y1G7EF/
2、服务器日志查询
日志应用使用说明
平台日志文件说明
访问日志相关配置
O2OA日志输出设置log4j2.xml
审计日志相关配置
3、APP应用日志查询
移动端查看日志说明
相关文章:

O2OA开发平台实施入门指南
O2OA(翱途)开发平台,是一款适用于协同办公系统开发与实施的基础平台,说到底,它也是一款快速开发平台。开发者可以基于平台提供的能力完成门户、流程、信息相关的业务功能开发。 既然定位为开发平台,那么开…...

服装行业多模态算法个性化产品定制方案 | 京东云技术团队
一、项目背景 AI赋能服装设计师,设计好看、好穿、好卖的服装 传统服装行业痛点 • 设计师无法准确捕捉市场趋势,抓住中国潮流 • 上新周期长,高库存滞销风险大 • 基本款居多,难以满足消费者个性化需求 解决方案 • GPT数据…...
MySQL表空间结构与页、区、段的定义
文章目录 一、概念引入1、页2、区3、段 二、页的结构1、File Header2、FIle Trailer 三、区的结构1、分类2、XDES Entry3、XDES Entry链表 四、段的结构五、独立表空间1、FSP_HDR页2、XDES页3、IBUF_BITMAP页4、INODE页5、INDEX页 六、系统表空间 一、概念引入 1、页 InnoDB是…...

RaabitMQ(三) - RabbitMQ队列类型、死信消息与死信队列、懒队列、集群模式、MQ常见消息问题
RabbitMQ队列类型 Classic经典队列 这是RabbitMQ最为经典的队列类型。在单机环境中,拥有比较高的消息可靠性。 经典队列可以选择是否持久化(Durability)以及是否自动删除(Auto delete)两个属性。 Durability有两个选项,Durable和Transient。 Durable表…...
Unity3D GPU Selector/Picker
Unity3D GPU Selector/Picker 一、概述 1.动机 Unity3D中通常情况下使用物理系统进行物体点击选择的基础,对于含大量对象的场景,添加Collider组件会增加内容占用,因此使用基于GPU的点击选择方案 2.实现思路 对于场景的每个物体,…...

灰度非线性变换之c++实现(qt + 不调包)
本章介绍灰度非线性变换,具体内容包括:对数变换、幂次变换、指数变换。他们的共同特点是使用非线性变换关系式进行图像变换。 1.灰度对数变换 变换公式:y a log(1x) / b,其中,a控制曲线的垂直移量;b为正…...

轻量级Web框架Flask
Flask-SQLAlchemy MySQL是免费开源软件,大家可以自行搜索其官网(https://www.MySQL.com/downloads/) 测试MySQL是否安装成功 在所有程序中,找到MySQL→MySQL Server 5.6下面的命令行工具,然后单击输入密码后回车&am…...

【gridsample】地平线如何支持gridsample算子
文章目录 1. grid_sample算子功能解析1.1 理论介绍1.2 代码分析1.2.1 x,y取值范围[-1,1]1.2.2 x,y取值范围超出[-1,1] 2. 使用grid_sample算子构建一个网络3. 走PTQ进行模型转换与编译 实操以J5 OE1.1.60对应的docker为例 1. grid_sample算子功能解析 该段主要参考:…...

JPA实现存储实体类型信息
本文已收录于专栏 《Java》 目录 背景介绍概念说明DiscriminatorValue 注解:DiscriminatorColumn 注解:Inheritance(strategy InheritanceType.SINGLE_TABLE) 注解: 实现方式父类子类执行效果 总结提升 背景介绍 在我们项目开发的过程中经常…...

阿里云快速部署开发环境 (Apache + Mysql8.0+Redis7.0.x)
本文章的内容截取于云服务器管理控制台提供的安装步骤,再整合前人思路而成,文章末端会提供原文连接 ApacheMysql 8.0部署MySQL数据库(Linux)步骤一:安装MySQL步骤二:配置MySQL步骤三:远程访问My…...

语音秘书:让录音转文字识别软件成为你的智能工作助手
每当在需要写文章的深夜,我的思绪经常跟不上我的笔,即便是说出来用录音机录下,再书写出来,也需要耗费大量时间。这个困扰了我很久的问题终于有了解决的办法,那就是录音转文字软件。它像个语言魔术师,将我所…...

【腾讯云 Cloud Studio 实战训练营】用于编写、运行和调试代码的云 IDE泰裤辣
文章目录 一、引言✉️二、什么是腾讯云 Cloud Studio🔍三、Cloud Studio优点和功能🌈四、Cloud Studio初体验(注册篇)🎆五、Cloud Studio实战演练(实战篇)🔬1. 初始化工作空间2. 安…...

[C#] 简单的俄罗斯方块实现
一个控制台俄罗斯方块游戏的简单实现. 已在 github.com/SlimeNull/Tetris 开源. 思路 很简单, 一个二维数组存储当前游戏的方块地图, 用 bool 即可, true 表示当前块被填充, false 表示没有. 然后, 抽一个 “形状” 类, 形状表示当前玩家正在操作的一个形状, 例如方块, 直线…...

postman官网下载安装登录详细教程
目录 一、介绍 二、官网下载 三、安装 四、注册登录postman账号(不注册也可以) postman注册登录和不注册登录的使用区别 五、关于汉化的说明 一、介绍 简单来说:是一款前后端都用来测试接口的工具。 展开来说:Postman 是一个…...

(贪心) 剑指 Offer 14- I. 剪绳子 ——【Leetcode每日一题】
❓剑指 Offer 14- I. 剪绳子 难度:中等 给你一根长度为 n 的绳子,请把绳子剪成整数长度的 m 段(m、n都是整数,n > 1 并且 m > 1),每段绳子的长度记为 k[0],k[1]...k[m-1] 。请问 k[0]*k[1]*...*k[m…...

如何将Linux上的cpolar内网穿透设置成 - > 开机自启动
如何将Linux上的cpolar内网穿透设置成 - > 开机自启动 文章目录 如何将Linux上的cpolar内网穿透设置成 - > 开机自启动前言一、进入命令行模式二、输入token码三、输入内网穿透命令 前言 我们将cpolar安装到了Ubuntu系统上,并通过web-UI界面对cpolar的功能有…...
50.两数之和(力扣)
目录 问题描述 核心代码解决 代码思想 时间复杂度和空间复杂度 问题描述 给定一个整数数组 和一个整数目标值 ,请你在该数组中找出 和为目标值 target 的那 两个 整数,并返回它们的数组下标。numstarget 你可以假设每种输入只会对应一个答案。但是&am…...

k8s基础
k8s基础 文章目录 k8s基础一、k8s组件二、k8s组件作用1.master节点2.worker node节点 三、K8S创建Pod的工作流程?四、K8S资源对象1.Pod2.Pod控制器3.service && ingress 五、K8S资源配置信息六、K8s部署1.K8S二进制部署2.K8S kubeadm搭建 七、K8s网络八、K8…...

【自然语言处理】大模型高效微调:PEFT 使用案例
文章目录 一、PEFT介绍二、PEFT 使用2.1 PeftConfig2.2 PeftModel2.3 保存和加载模型 三、PEFT支持任务3.1 Models support matrix3.1.1 Causal Language Modeling3.1.2 Conditional Generation3.1.3 Sequence Classification3.1.4 Token Classification3.1.5 Text-to-Image Ge…...

FFmpeg将编码后数据保存成mp4
以下测试代码实现的功能是:持续从内存块中获取原始数据,然后依次进行解码、编码、最后保存成mp4视频文件。 可保存成单个视频文件,也可指定每个视频文件的总帧数,保存多个视频文件。 为了便于查看和修改,这里将可独立的…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

Day131 | 灵神 | 回溯算法 | 子集型 子集
Day131 | 灵神 | 回溯算法 | 子集型 子集 78.子集 78. 子集 - 力扣(LeetCode) 思路: 笔者写过很多次这道题了,不想写题解了,大家看灵神讲解吧 回溯算法套路①子集型回溯【基础算法精讲 14】_哔哩哔哩_bilibili 完…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
五年级数学知识边界总结思考-下册
目录 一、背景二、过程1.观察物体小学五年级下册“观察物体”知识点详解:由来、作用与意义**一、知识点核心内容****二、知识点的由来:从生活实践到数学抽象****三、知识的作用:解决实际问题的工具****四、学习的意义:培养核心素养…...
在四层代理中还原真实客户端ngx_stream_realip_module
一、模块原理与价值 PROXY Protocol 回溯 第三方负载均衡(如 HAProxy、AWS NLB、阿里 SLB)发起上游连接时,将真实客户端 IP/Port 写入 PROXY Protocol v1/v2 头。Stream 层接收到头部后,ngx_stream_realip_module 从中提取原始信息…...

IoT/HCIP实验-3/LiteOS操作系统内核实验(任务、内存、信号量、CMSIS..)
文章目录 概述HelloWorld 工程C/C配置编译器主配置Makefile脚本烧录器主配置运行结果程序调用栈 任务管理实验实验结果osal 系统适配层osal_task_create 其他实验实验源码内存管理实验互斥锁实验信号量实验 CMISIS接口实验还是得JlINKCMSIS 简介LiteOS->CMSIS任务间消息交互…...
MySQL账号权限管理指南:安全创建账户与精细授权技巧
在MySQL数据库管理中,合理创建用户账号并分配精确权限是保障数据安全的核心环节。直接使用root账号进行所有操作不仅危险且难以审计操作行为。今天我们来全面解析MySQL账号创建与权限分配的专业方法。 一、为何需要创建独立账号? 最小权限原则…...
python报错No module named ‘tensorflow.keras‘
是由于不同版本的tensorflow下的keras所在的路径不同,结合所安装的tensorflow的目录结构修改from语句即可。 原语句: from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后: from tensorflow.python.keras.lay…...