EOS Low-Code Platform 8 EOS Low-Code Platform 8
产品简介
学习指南
更新说明
安装与集成
上线指南
初见EOS
低代码开发手册
专业代码开发手册
专题场景实战
公共服务框架
应用运行治理
最佳实践
运维指南
  • 升级迁移问题排查与解决手册
  • 现象一:升级后核心功能报错或异常
  • 现象二:通过构件包/基线迁移后,页面或流程表现异常
  • 现象三:升级后单点登录(SSO)或第三方集成失效
  • 预防措施

# 升级迁移问题排查与解决手册

在进行 EOS 平台版本升级或将应用从开发环境迁移到生产环境时,遇到功能异常、报错等问题,请参考以下排查指南。

# 现象一:升级后核心功能报错或异常

典型表现:

  • 流程提交失败,提示找不到类或方法(NoSuchMethodError)。
  • 流程中心页面(待办、已办)打开报错,参数丢失。
  • 自定义按钮属性被覆盖,或按钮行为与预期不符。
  • 消息模板、企业微信配置等丢失或不生效。

常见原因:

  1. 缺少必要的升级补丁:跨版本升级时,必须按顺序打齐所有中间版本的补丁,或直接应用 合集补丁。
  2. 数据库升级脚本未执行或执行不完整:版本间的数据库表结构、初始数据有变化,必须手动执行对应的升级 SQL 脚本。
  3. 前端包版本错乱:升级后,前端包(web 目录)未替换为对应版本的最新包,导致前后端不匹配。
  4. 配置文件未同步更新:旧版本的配置文件(如 application.properties)可能缺少新版本所需的配置项。

解决步骤:

  1. 核对升级路线和补丁:
    • 严格遵循官方升级指南。例如,从 8.3.0 升级到 8.3.3,通常需要先升级到 8.3.1,再到 8.3.2,最后到 8.3.3。
    • 检查是否已安装针对当前版本的 合集补丁,合集补丁通常包含多个重要修复。
  2. 检查并执行数据库升级脚本:
    • 在数据库中找到版本记录表(如果有),或对比新旧版本数据库脚本,确认所有表结构变更(ALTER TABLE)和新增数据(INSERT)都已执行。
    • 关键数据迁移:例如,从 8.3.2 升级到 8.3.3 时,需要手动将 bfp_message_* 系列表的数据同步到新的 afc_message_* 系列表中。
  3. 对比配置文件:
    • 使用对比工具,对比新旧版本的 application.properties、user-config.xml 等核心配置文件,将新版本的配置项(如 SSO 相关、新功能开关)合并到旧文件中。
    • 特别注意检查 eos.profiles.active 是否为 prod(生产环境)。
  4. 清理浏览器和应用缓存:
    • 升级后,务必清理浏览器缓存,并重启 Nginx 以加载最新的前端资源。
    • 删除应用的 work 和 work_temp 目录,然后重启应用,确保所有编译后的资源都是最新的。

# 现象二:通过构件包/基线迁移后,页面或流程表现异常

典型表现:

  • 将开发环境的构件包导入生产环境后,表单或视图无法正常显示,需要重新拖拽组件才能恢复。
  • 流程上配置的按钮或事件在迁移后不生效。
  • 流程定义迁移后,在发起流程中依然能看到已删除的旧流程。

常见原因:

  1. 运行态数据与设计态数据不同步:构件包主要包含设计态数据(如页面布局)。迁移后,运行态数据(如 BPS 中的流程定义缓存)可能还是旧的。
  2. 环境差异导致:生产环境通常关闭了 IDE,而某些资源(如流程与 BPS 的关联)需要 IDE 环境下的“保存”操作来触发同步。
  3. 基线导入未覆盖所有内容:导出的基线可能未包含所有需要的资源(如业务组件)。

解决步骤:

  1. 优先使用基线包进行迁移:
    • 相比于构件包,基线包(全量导入)是更推荐的迁移方式。它包含更完整的资源信息和依赖关系,能更好地保证环境一致性。
  2. 迁移后执行“编译”或“提取”操作:
    • 对于表单/视图:如果导入后显示异常,可以在目标环境的开发中心(如果允许开放)找到对应构件包,右键选择“批量编译”或逐一打开资源并保存,强制其重新生成运行态代码。
    • 对于流程:如果流程行为异常,可以在低开 IDE 中右键点击该流程,选择“提取”,将 BPS 中的最新流程定义同步到低开模型中。
  3. 清理 BPS 流程定义缓存:
    • 如果已删除的流程依然可见,请登录 流程中心-引擎管理-资源管理,在列表中找到并手动删除对应的流程定义资源。这将清除 BPS 侧的缓存。
  4. 数据权限和角色重新授权:
    • 迁移后,原环境中配置的数据权限、角色与菜单的关联关系可能因 ID 变化而丢失。需要在新环境中重新进行授权配置。

# 现象三:升级后单点登录(SSO)或第三方集成失效

典型表现:

  • 升级后,通过 CAS/OAuth2 无法登录,或登录后跳转异常。
  • 企业微信、钉钉消息无法发送或接收。
  • 调用外部接口时出现 401/403 错误。

常见原因:

  1. 安全策略增强:新版本可能加强了安全校验,例如要求特定的请求头或参数。
  2. 接口 URL 或参数变化:SSO 认证流程或第三方消息推送的接口在新版本中可能发生了变化。
  3. 配置文件被覆盖:升级过程中,自定义的 SSO 配置(如 afc.sso.oauth2.*)可能被默认配置文件覆盖。

解决步骤:

  1. 恢复并检查 SSO 配置:
    • 从旧版本备份中恢复 application-afc.properties 或 application.properties 中的 SSO 相关配置。
    • 对比新版本文档,确认是否有新增的必填配置项(例如,8.3.3 的消息中心可能需要额外配置连接器)。
  2. 检查白名单和拦截器:
    • 新版本可能增加了对某些接口的拦截。检查 user-config.xml 中的白名单配置,确保 SSO 回调地址、第三方消息推送接口等已被加入白名单。
  3. 升级第三方集成 SDK/补丁:
    • 针对企业微信、钉钉等集成,确认是否有专门针对新版本的适配补丁。例如,8.3.3 版本有专门的补丁用于修复企业微信登录跳转问题。
    • 如果在升级后消息发送失败,检查 application-job.properties 等文件中 xxl.job.accessToken 的配置是否正确。

# 预防措施

  • 制定详细的升级方案:在升级前,根据官方升级指南,列出所有步骤,包括:备份、停止服务、替换介质、执行脚本、合并配置、打补丁、启动服务、验证功能。
  • 搭建模拟环境验证:务必先在测试环境中完整执行一遍升级流程,验证所有核心业务功能正常后,再在生产环境操作。
  • 保留旧版本备份:升级前,对数据库、应用目录、配置文件进行完整备份,以便快速回滚。

← 移动端适配问题排查解决指南 定时任务问题 →