信创迁移实战:TongWeb部署与配置避坑指南

📅 2026/7/14 11:24:37
信创迁移实战:TongWeb部署与配置避坑指南
1. 信创迁移与TongWeb概述信创迁移是当前企业信息化建设的重要趋势而TongWeb作为国产中间件的代表产品在迁移过程中扮演着关键角色。TongWeb是一款全面符合Java EE、Jakarta EE最新标准规范的应用服务器具有轻量易用、性能强大、高可靠性和高安全性的特点。它支持从开发到生产的全应用生命周期管理包括开发、部署、运行时监视等各个环节。在实际迁移过程中我发现很多团队容易陷入一些误区。比如认为老版本JDK开发的应用必须使用对应版本的TongWeb或者认为JavaEE应用迁移到信创平台需要重新编译。这些误区往往会增加迁移的难度和成本。事实上高版本JDK可以兼容大部分低版本JDK开发的应用Java语言本身就是跨平台的迁移通常不需要重新编译。2. 环境准备与安装部署2.1 硬件与操作系统要求TongWeb支持多种国产操作系统和芯片架构包括但不限于操作系统统信UOS、中标麒麟、银河麒麟等芯片架构龙芯、飞腾、鲲鹏、兆芯等在准备环境时需要注意以下几点确保服务器资源充足建议至少4核CPU、8GB内存磁盘空间建议不少于50GB用于安装和运行TongWeb网络配置要正确确保各端口可正常访问2.2 JDK安装与配置TongWeb8.0需要JDK1.8或更高版本。推荐使用OpenJDK以下是安装步骤# 下载OpenJDK wget https://download.java.net/openjdk/jdk8u41/ri/openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz # 解压安装包 tar -zxvf openjdk-8u41-b04-linux-x64-14_jan_2020.tar.gz -C /usr/local/ # 配置环境变量 echo export JAVA_HOME/usr/local/java-se-8u41-ri /etc/profile echo export PATH$JAVA_HOME/bin:$PATH /etc/profile source /etc/profile # 验证安装 java -version2.3 TongWeb安装TongWeb提供多种安装方式这里介绍最常用的解压安装# 解压安装包 unzip TongWeb8.0.zip -d /opt/ # 设置环境变量 echo export TONGWEB_HOME/opt/TongWeb8.0 /etc/profile source /etc/profile # 启动TongWeb cd $TONGWEB_HOME/bin ./startserver.sh安装完成后可以通过http://服务器IP:9060/console访问管理控制台默认用户名密码为admin/admin。3. 应用部署与配置3.1 应用打包与部署对于JavaEE应用可以直接将war包部署到TongWeb。如果是SpringBoot应用需要做一些调整修改pom.xml将打包方式改为warpackagingwar/packaging排除内嵌的Tomcat依赖dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-tomcat/artifactId /exclusion /exclusions /dependency修改启动类继承SpringBootServletInitializerpublic class Application extends SpringBootServletInitializer { Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Application.class); } }3.2 数据源配置TongWeb支持多种数据库数据源配置步骤如下将数据库驱动jar包放入$TONGWEB_HOME/lib/app目录登录管理控制台进入资源→JDBC→JDBC数据源点击新建填写数据源信息测试连接并保存对于连接池配置建议根据实际业务需求调整以下参数初始连接数5-10最大连接数50-100根据并发量调整连接超时时间30秒空闲连接超时时间10分钟4. 常见问题与解决方案4.1 乱码问题中文乱码是迁移过程中常见的问题解决方法包括确保应用和数据库使用统一的字符集推荐UTF-8在TongWeb的server.xml中添加URIEncoding配置Connector port8080 protocolHTTP/1.1 connectionTimeout20000 redirectPort8443 URIEncodingUTF-8 /对于特定数据库如达梦数据库创建时需要指定字符集CREATE DATABASE mydb CHARACTER SET utf8 COLLATE utf8_general_ci;4.2 性能调优TongWeb性能调优主要涉及JVM参数和线程池配置JVM参数建议-Xms4g -Xmx4g -XX:MetaspaceSize256m -XX:MaxMetaspaceSize512m线程池配置在server.xml中Executor nametomcatThreadPool namePrefixcatalina-exec- maxThreads200 minSpareThreads25 maxQueueSize100/连接器配置优化Connector executortomcatThreadPool port8080 protocolorg.apache.coyote.http11.Http11Nio2Protocol connectionTimeout20000 maxConnections10000 acceptCount100 maxHttpHeaderSize8192 tcpNoDelaytrue compressionon compressionMinSize2048 compressableMimeTypetext/html,text/xml,text/plain,text/css,text/javascript,application/javascript/4.3 日志配置TongWeb的日志配置位于$TONGWEB_HOME/domains/domain1/config/logging.properties。可以根据需要调整日志级别和输出格式handlers org.apache.juli.FileHandler, java.util.logging.ConsoleHandler org.apache.juli.FileHandler.level FINE org.apache.juli.FileHandler.directory ${catalina.base}/logs org.apache.juli.FileHandler.prefix tongweb. org.apache.juli.FileHandler.formatter org.apache.juli.OneLineFormatter java.util.logging.ConsoleHandler.level FINE java.util.logging.ConsoleHandler.formatter org.apache.juli.OneLineFormatter5. 安全配置与最佳实践5.1 安全加固修改默认管理员密码限制管理控制台访问IP启用HTTPS# 生成密钥库 keytool -genkey -alias tongweb -keyalg RSA -keystore /path/to/keystore.jks -validity 365 # 配置server.xml Connector port8443 protocolorg.apache.coyote.http11.Http11NioProtocol maxThreads150 SSLEnabledtrue SSLHostConfig Certificate certificateKeystoreFile/path/to/keystore.jks certificateKeystorePasswordchangeit typeRSA / /SSLHostConfig /Connector5.2 监控与维护启用JMX监控JAVA_OPTS$JAVA_OPTS -Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port9010 -Dcom.sun.management.jmxremote.sslfalse -Dcom.sun.management.jmxremote.authenticatefalse定期清理日志和临时文件设置自动备份配置文件5.3 集群配置对于高可用场景可以配置TongWeb集群修改domain.xml配置集群节点配置会话复制Cluster classNameorg.apache.catalina.ha.tcp.SimpleTcpCluster Manager classNameorg.apache.catalina.ha.session.DeltaManager expireSessionsOnShutdownfalse notifyListenersOnReplicationtrue/ Channel classNameorg.apache.catalina.tribes.group.GroupChannel Membership classNameorg.apache.catalina.tribes.membership.McastService address228.0.0.4 port45564 frequency500 dropTime3000/ Receiver classNameorg.apache.catalina.tribes.transport.nio.NioReceiver addressauto port4000 autoBind100 selectorTimeout5000 maxThreads6/ Sender classNameorg.apache.catalina.tribes.transport.ReplicationTransmitter Transport classNameorg.apache.catalina.tribes.transport.nio.PooledParallelSender/ /Sender Interceptor classNameorg.apache.catalina.tribes.group.interceptors.TcpFailureDetector/ Interceptor classNameorg.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor/ /Channel Valve classNameorg.apache.catalina.ha.tcp.ReplicationValve filter/ Valve classNameorg.apache.catalina.ha.session.JvmRouteBinderValve/ ClusterListener classNameorg.apache.catalina.ha.session.JvmRouteSessionIDBinderListener/ ClusterListener classNameorg.apache.catalina.ha.session.ClusterSessionListener/ /Cluster在实际项目中我遇到过因为JDK版本不匹配导致的应用启动失败问题。通过升级到TongWeb8.0和OpenJDK1.8后问题得到了解决。这也验证了高版本JDK对低版本应用的兼容性。