
1. 为什么选择TongWeb进行国产化部署最近几年在信创国产化的大背景下越来越多的企业开始将应用从Tomcat等国外中间件迁移到国产应用服务器。作为国内领先的应用服务器产品东方通TongWeb凭借其稳定性和兼容性成为很多项目的首选。我在实际项目中帮助多个团队完成了Spring Boot前后端分离项目向TongWeb的迁移这里分享一些实战经验。TongWeb与Tomcat相比有几个明显优势首先是性能更好特别是在高并发场景下其次是管理功能更完善提供了可视化的控制台最重要的是完全兼容Java EE标准这意味着大多数Spring Boot应用可以平滑迁移。不过需要注意的是TongWeb的配置方式与Tomcat有些差异这也是很多开发者初次接触时容易踩坑的地方。2. 项目改造与打包准备2.1 后端项目改造Spring Boot项目默认使用内嵌Tomcat要部署到TongWeb需要先移除内嵌容器。打开pom.xml文件找到spring-boot-starter-web依赖添加exclusions排除Tomcatdependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId exclusions exclusion groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-tomcat/artifactId /exclusion /exclusions /dependency然后添加servlet-api依赖注意scope为provideddependency groupIdjavax.servlet/groupId artifactIdjavax.servlet-api/artifactId version3.1.0/version scopeprovided/scope /dependency最后修改打包方式为warpackagingwar/packaging2.2 前端项目打包前端项目如Vue/React需要先执行build生成dist目录然后将其打包为war。这里有个关键步骤需要在dist目录下创建WEB-INF文件夹并添加web.xml文件web-app error-page error-code404/error-code location/index.html/location /error-page /web-app然后在dist目录下执行打包命令jar -cvf frontend.war *这个步骤很关键没有WEB-INF和web.xml的话TongWeb无法正确识别前端应用类型。3. TongWeb环境配置3.1 启动与登录TongWeb的默认管理端口是9060启动后访问http://服务器IP:9060/console即可进入控制台。默认用户名密码通常是thanos/thanos123.com或twnt/twnt123.com具体版本可能略有不同。第一次登录建议立即修改默认密码并检查服务器时间是否正确。我在一个项目中就遇到过因为服务器时区设置不对导致session异常的问题。3.2 虚拟主机配置前后端分离项目建议创建独立的虚拟主机进入WEB容器配置 虚拟主机管理点击新增虚拟主机主机名称建议使用项目名称如myproject主机别名可以设置为服务器IP保存配置虚拟主机相当于Tomcat中的Host概念用于隔离不同应用的环境。3.3 HTTP通道配置前后端需要独立的HTTP通道进入WEB容器配置 HTTP通道管理创建后端通道通道名称backend-http监听端口8080示例虚拟主机选择刚创建的虚拟主机创建前端通道通道名称frontend-http监听端口8081示例虚拟主机选择同一个虚拟主机重定向端口设置为后端端口8080这里有个技巧前端通道的重定向端口指向后端这样当前端需要访问API时就不需要处理跨域问题。4. 应用部署实战4.1 后端应用部署进入应用管理 部署应用选择本地文件上传后端war包应用名称设置为backend应用前缀设置为/api根据实际项目调整虚拟主机选择之前创建的直接完成部署部署完成后可以通过http://IP:8080/api/your-api来测试接口是否正常。4.2 前端应用部署进入应用管理 部署应用选择本地文件上传前端war包应用名称设置为frontend应用前缀设置为/重要虚拟主机选择同一个完成部署这里特别注意前端应用前缀必须设置为/否则静态资源路径会出错。我在第一次部署时就因为设成了/frontend导致页面加载异常。4.3 部署验证访问前端地址如http://IP:8081应该能看到页面正常加载。如果遇到白屏问题通常有两种可能静态资源路径错误 - 检查浏览器开发者工具中的资源加载情况API请求失败 - 检查前端配置的API地址是否正确指向后端端口5. 常见问题排查5.1 事务不生效问题如果发现Transactional注解不生效需要修改TongWeb的bin/external.vmoptions文件添加-DWebModuleOnlytrue然后重启TongWeb。这个问题困扰了我们团队整整一天最后发现是TongWeb的一个特殊配置导致。5.2 中文乱码问题TongWeb默认编码是GBK需要手动修改为UTF-8进入WEB容器配置 HTTP通道管理编辑使用的HTTP通道在其他设置中将URL编码格式改为UTF-85.3 静态资源缓存TongWeb对静态资源的缓存策略比较激进开发阶段建议关闭缓存进入WEB容器配置 默认WEB应用配置修改静态资源缓存时间为0重启应用生效6. 性能优化建议对于生产环境建议做以下优化配置线程池调整根据服务器核心数设置合适的最大线程数JVM参数-Xms和-Xmx设置为相同值避免内存波动连接超时根据业务特点设置合理的超时时间启用GZIP压缩减少网络传输量特别提醒TongWeb的监控功能很强大建议定期查看运行监控中的数据及时发现性能瓶颈。