158 lines
4.4 KiB
Markdown
158 lines
4.4 KiB
Markdown
# TongWeb自启动适配后端实施记录
|
||
|
||
## 1. 本次改动概述
|
||
|
||
本次仅对后端 `ruoyi-admin` 模块进行 TongWeb 自启动适配,保持 Spring Boot `java -jar` 启动方式不变,完成了以下改造:
|
||
|
||
- 接入 TongWeb Spring Boot Starter 依赖。
|
||
- 排除默认内嵌 Tomcat 主依赖链。
|
||
- 将 `Tongweb_license.dat` 纳入 `ruoyi-admin` 资源目录并打包进产物。
|
||
- 在 `dev`、`uat`、`pro` 三套环境配置中增加 `server.tongweb.license.path`。
|
||
- 补充 TongWeb 资源与配置的自动化测试。
|
||
|
||
## 2. 修改文件
|
||
|
||
新增文件:
|
||
|
||
- `ruoyi-admin/src/main/resources/Tongweb_license.dat`
|
||
- `ruoyi-admin/src/test/java/com/ruoyi/TongWebLicenseResourceTest.java`
|
||
- `ruoyi-admin/src/test/java/com/ruoyi/TongWebYamlConfigTest.java`
|
||
- `doc/2026-04-16-TongWeb自启动适配后端实施记录.md`
|
||
|
||
修改文件:
|
||
|
||
- `ruoyi-admin/pom.xml`
|
||
- `ruoyi-admin/src/main/resources/application-dev.yml`
|
||
- `ruoyi-admin/src/main/resources/application-uat.yml`
|
||
- `ruoyi-admin/src/main/resources/application-pro.yml`
|
||
|
||
## 3. 关键实施内容
|
||
|
||
### 3.1 依赖与打包调整
|
||
|
||
在 `ruoyi-admin/pom.xml` 中完成以下处理:
|
||
|
||
- 给 `ruoyi-framework` 依赖增加 `spring-boot-starter-tomcat` 排除。
|
||
- 新增 `com.tongweb.springboot:tongweb-spring-boot-starter-2.x:7.0.E.7`。
|
||
- 增加 `resources` 配置,确保 `.dat` 文件进入构建产物。
|
||
- 新增 TongWeb Maven 仓库:
|
||
- `https://mvn.elitescloud.com/nexus/repository/maven-releases/`
|
||
|
||
补充仓库的原因是:项目当前默认只使用阿里云公共仓库,无法解析 TongWeb Starter 依赖。
|
||
|
||
### 3.2 License 资源接入
|
||
|
||
将 `doc/Tongweb_license.dat` 复制到:
|
||
|
||
- `ruoyi-admin/src/main/resources/Tongweb_license.dat`
|
||
|
||
构建后已确认该文件进入 `ruoyi-admin.jar`:
|
||
|
||
- `BOOT-INF/classes/Tongweb_license.dat`
|
||
|
||
### 3.3 多环境配置补充
|
||
|
||
在以下文件的 `server` 节点下增加:
|
||
|
||
```yml
|
||
tongweb:
|
||
license:
|
||
path: classpath:Tongweb_license.dat
|
||
```
|
||
|
||
涉及文件:
|
||
|
||
- `ruoyi-admin/src/main/resources/application-dev.yml`
|
||
- `ruoyi-admin/src/main/resources/application-uat.yml`
|
||
- `ruoyi-admin/src/main/resources/application-pro.yml`
|
||
|
||
### 3.4 自动化测试补充
|
||
|
||
新增测试:
|
||
|
||
- `TongWebLicenseResourceTest`
|
||
- 校验 `Tongweb_license.dat` 可从 classpath 读取。
|
||
- `TongWebYamlConfigTest`
|
||
- 校验 `dev`、`uat`、`pro` 三套环境都声明了 `server.tongweb.license.path`。
|
||
|
||
## 4. 验证结果
|
||
|
||
### 4.1 测试验证
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
mvn -pl ruoyi-admin -am -Dtest=TongWebLicenseResourceTest -Dsurefire.failIfNoSpecifiedTests=false test
|
||
mvn -pl ruoyi-admin -am -Dtest=TongWebYamlConfigTest -Dsurefire.failIfNoSpecifiedTests=false test
|
||
```
|
||
|
||
结果:
|
||
|
||
- 两个新增测试均通过。
|
||
|
||
### 4.2 构建验证
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
mvn -pl ruoyi-admin -am package -DskipTests
|
||
```
|
||
|
||
结果:
|
||
|
||
- 构建成功。
|
||
- `ruoyi-admin.jar` 与 `ruoyi-admin.war` 均正常产出。
|
||
|
||
### 4.3 产物检查
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
jar tf ruoyi-admin/target/ruoyi-admin.jar | rg 'Tongweb_license.dat|tongweb'
|
||
```
|
||
|
||
结果:
|
||
|
||
- 确认 `Tongweb_license.dat` 已被打包到 `BOOT-INF/classes/`。
|
||
- 确认 TongWeb 相关依赖已进入最终产物。
|
||
|
||
### 4.4 依赖树检查
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
mvn -pl ruoyi-admin dependency:tree '-Dincludes=com.tongweb.springboot:*,com.tongweb:*,org.apache.tomcat.embed:*'
|
||
```
|
||
|
||
结果:
|
||
|
||
- 已出现 TongWeb Starter 及其相关依赖。
|
||
- 默认 `spring-boot-starter-tomcat` 主依赖链已不在结果中。
|
||
- 依赖树中仍存在 `org.apache.tomcat.embed:tomcat-embed-el:9.0.112`,来源为 `spring-boot-starter-validation`,本次未额外清理。
|
||
|
||
### 4.5 启动验证
|
||
|
||
执行命令:
|
||
|
||
```bash
|
||
mvn -f ruoyi-admin/pom.xml spring-boot:run -Dspring-boot.run.profiles=dev
|
||
```
|
||
|
||
结果:
|
||
|
||
- 应用成功监听 `63310` 端口。
|
||
- TongWeb License SDK 日志已输出,说明 `server.tongweb.license.path` 配置生效,许可证文件已被读取。
|
||
- 启动验证完成后,已手动结束后台 Java 进程,未残留测试进程。
|
||
|
||
## 5. 风险与遗留事项
|
||
|
||
启动日志中发现当前 `Tongweb_license.dat` 本身存在以下问题:
|
||
|
||
- 许可证版本信息为 `7.0`,而当前中间件产品版本为 `7.0.E`,存在版本不匹配告警。
|
||
- 许可证有效期显示为 `2023-02-23`,已过期。
|
||
|
||
结论:
|
||
|
||
- 本次代码改造已经打通 TongWeb 接入、资源加载、配置读取和启动链路。
|
||
- 但上线前应替换为与 `TongWeb 7.0.E` 匹配且在有效期内的正式授权文件,否则运行环境存在授权风险。
|