国产化替代-东方通 (Tomcat转TongWeb)

10,879 阅读4分钟

国产化替代-东方通 (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版本什么的问题,导致应用起不来……

eefdade05effe6b891a2afb44e6a061.png

5.操作步骤(Linux)

在装了java环境的linux服务器上上传,转换工具、依赖包、项目jar包、license证书等文件。

image.png

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/

image.png

生成转换为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的 完整(全)路径
    • 不指定全路径报错:

image.png

  • 3.配置文件名称改为application.properties或application.yml
• 配置文件名称为bootstrap.yml提示找不到配置文件
• 对于配置文件在jar外面的,可以先创建一个空的配置文件application.properties或application.yml,转换后再删除
  • 4.JDK环境变量配置jre报错,需全量JDK

相关报错:Cannot run program“jar”: CreateProcess error=2 ,系统找不到指定文件 b5c6064f1a02086247e1d4d4c17b37c.png

6.运行准换TongWeb的sms-alerts-1.0-SNAPSHOT-tw.jar

7063425a9de6d592e3ebeaef2257f90.png

替换完成!

参考文档: 东方通TongWeb嵌入版-transform转换工具-注意事项_tongweb70e嵌入版使用教程:blog.csdn.net/vaeigffsgdf…