国产化替代-东方通 (Tomcat转TongWeb)
背景: 随着全球技术竞争的加剧以及信息安全问题的日益凸显,中国正积极推进信息技术领域的自主创新与国产替代战略。现党政机关,围绕办公及国家重要信息系统多数为信创环境,旨在做到基础硬件、基础软件、应用软件到信息安全各个方面,通过自主研发和推广自主化、国产化的技术标准,从信息安全角度出发,达到自主可控,解决核心技术“卡脖子”的问题,不受制于外国技术。
1.目前了解到的国产化相关产品
国产CPU厂商/产品:飞腾、鲲鹏、海光、龙芯、申威、兆芯
GPU厂商/产品: 华为昇腾、华为海思、壁仞科技、英伟达等
国产操作系统:多以Linux为基础进行二次开发包括银河麒麟、中标麒麟、统信软件的UOS等
国产数据库:人大金仓、南大通用、达梦、瀚高等
国产化中间件:东方通系列产品
2.东方通TongWeb替换Tomcat
本文对东方通TongWeb对Tomcat替换做简单记录
官方文档了解到替换方式有四种:
1.pom.xml中直接配置依赖:通过在工程的 pom.xml 文件中直接配置依赖的方式,来引入 TongWeb 嵌入式版产品资源 Jar 包依赖。
2.嵌入可执行 jar 包:若用户的应用已经编译为可执行的 jar 包,且采用的是 Spring Boot 内置的 Tomcat 服务器。用户可以通过a.通过转换工具转换 jar 包 b.手动嵌入到可执行 jar 包,将使用 Tomcat 作为嵌入式服务器的 Spring Boot jar 转换为使用TongWeb 作为嵌入式服务器的 Spring Boot jar。
3.嵌入可执行 war 包:若用户的应用已经编译为可部署的 war 包,且采用的是 Spring Boot 内置的 Tomcat 服务器,需要把Tomcat 嵌入式的 jar 包删除,并根据不同的 Spring Boot 版本把 TongWeb 嵌入式所需的 jar 包添加进去。。
4.作为外部 jar 包:直接在项目工程中使用嵌入式 TongWeb 产品 lib 下的 jar 包,用户无需在pom.xml 文件中添加对应的依赖。
目前现状:目前项目是生成jar包,通过dockerFile文件生成arm架构容器镜像,在容器平台部署使用。对上述四种替换方式综合考虑,发现只有方式2嵌入可执行 jar 包中的通过转换工具转换 jar 包方式是不需要改动代码的,实施比较方便,因此采用该方式,下面针对该方式的替换做相关记录。
2.1环境准备
1.安装 java 环境
Windows环境、Linux环境都可,安装配置好环境变量即可不详细赘述
2. java 环境验证 输入 java -version可以查看版本信息
```
[root@host-192-168-119-70 ~]# java -version
java version "1.8.0_361"
Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)
```
3.准备工作
准备待转换的 Spring Boot 项目工程,例如:sms-alerts-1.0-SNAPSHOT.jar。
注意:
待转换的项目工程中必须存在 application.properties 文件,此配置文件固定读取,不支持替换为其他名称。
• TongWeb 嵌入式产品包 “tongweb-embed-7.0.E.6_P10-SNAPSHOT.zip”。
• TongWeb 转换工具包 “tongweb-transform-7.0.E.6_P10-SNAPSHOT.zip”。
• 准备 “license.dat” 文件
4.补充说明
转换工具默认将“tongweb-embed-7.0.E.6_P10-SNAPSHOT/lib/”下的所有依赖复制到项目的“MEATA INF/lib”下。
若有不需要使用的功能包,则需要将不需要的功能包从lib目录移除。
例如: 不需要监控功能,需要从“tongweb-embed-7.0.E.6_P10-SNAPSHOT/lib/”下删除如下 jar 包。
• tongweb-spring-boot-monitor-starter-1.x-{version}.jar
• tongweb-spring-boot-monitor-starter-2.x-{version}.jar
• tongweb-spring-boot-monitor-starter-3.x-{version}.jar
tip:呃,这个不删除会提示java版本什么的问题,导致应用起不来……
5.操作步骤(Linux)
在装了java环境的linux服务器上上传,转换工具、依赖包、项目jar包、license证书等文件。
a. 进入 TongWeb 转换工具包目录“tongweb-transform-7.0.E.6_P10-SNAPSHOT”。
b. 执行如下命令,将待转换的 Spring Boot 项目工程转换为使用 TongWeb 作为嵌入式服务器的
Spring Boot 工程。
./transform.sh {SRC_JAR_PATH} {TONGWEB_EMBED_LIB_PATH}
说明:
▪ {SRC_JAR_PATH}:表示待转换 Spring Boot 项目工程的完整路径。
▪ {TONGWEB_EMBED_LIB_PATH}:表示 TongWeb 嵌入式产品包内的 lib 目录的完整路径。
例如:
./transform.sh /data/demo/sms-alerts-1.0-SNAPSHOT.jar /data/demo/tongweb-embed-7.0.E.6_P10/lib/
生成转换为TongWeb的sms-alerts-1.0-SNAPSHOT-tw.jar
tip: 当然这块也不说那么一帆风顺,基本上也踩了几个坑
- 1、授权文件license.dat 放在your_springboot.jar 同级目录
- 2、执行脚本,./transform.sh /data/demo/sms-alerts-1.0-SNAPSHOT.jar /data/demo/tongweb-embed-7.0.E.6_P10/lib/ #指定项目工程和tongweb-embed-7.0.E.6_P9的 完整(全)路径
- 不指定全路径报错:
- 3.配置文件名称改为application.properties或application.yml
• 配置文件名称为bootstrap.yml提示找不到配置文件
• 对于配置文件在jar外面的,可以先创建一个空的配置文件application.properties或application.yml,转换后再删除
- 4.JDK环境变量配置jre报错,需全量JDK
相关报错:Cannot run program“jar”: CreateProcess error=2 ,系统找不到指定文件
6.运行准换TongWeb的sms-alerts-1.0-SNAPSHOT-tw.jar
替换完成!
参考文档: 东方通TongWeb嵌入版-transform转换工具-注意事项_tongweb70e嵌入版使用教程:blog.csdn.net/vaeigffsgdf…