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视频文件。 可保存成单个视频文件,也可指定每个视频文件的总帧数,保存多个视频文件。 为了便于查看和修改,这里将可独立的…...
脑机新手指南(八):OpenBCI_GUI:从环境搭建到数据可视化(下)
一、数据处理与分析实战 (一)实时滤波与参数调整 基础滤波操作 60Hz 工频滤波:勾选界面右侧 “60Hz” 复选框,可有效抑制电网干扰(适用于北美地区,欧洲用户可调整为 50Hz)。 平滑处理&…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
【人工智能】神经网络的优化器optimizer(二):Adagrad自适应学习率优化器
一.自适应梯度算法Adagrad概述 Adagrad(Adaptive Gradient Algorithm)是一种自适应学习率的优化算法,由Duchi等人在2011年提出。其核心思想是针对不同参数自动调整学习率,适合处理稀疏数据和不同参数梯度差异较大的场景。Adagrad通…...
React Native 开发环境搭建(全平台详解)
React Native 开发环境搭建(全平台详解) 在开始使用 React Native 开发移动应用之前,正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南,涵盖 macOS 和 Windows 平台的配置步骤,如何在 Android 和 iOS…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
【Oracle】分区表
个人主页:Guiat 归属专栏:Oracle 文章目录 1. 分区表基础概述1.1 分区表的概念与优势1.2 分区类型概览1.3 分区表的工作原理 2. 范围分区 (RANGE Partitioning)2.1 基础范围分区2.1.1 按日期范围分区2.1.2 按数值范围分区 2.2 间隔分区 (INTERVAL Partit…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
2025年渗透测试面试题总结-腾讯[实习]科恩实验室-安全工程师(题目+回答)
安全领域各种资源,学习文档,以及工具分享、前沿信息分享、POC、EXP分享。不定期分享各种好玩的项目及好用的工具,欢迎关注。 目录 腾讯[实习]科恩实验室-安全工程师 一、网络与协议 1. TCP三次握手 2. SYN扫描原理 3. HTTPS证书机制 二…...
JavaScript 数据类型详解
JavaScript 数据类型详解 JavaScript 数据类型分为 原始类型(Primitive) 和 对象类型(Object) 两大类,共 8 种(ES11): 一、原始类型(7种) 1. undefined 定…...
