Spring Boot项目WAR包部署至东方通TongWeb的实战避坑指南
2026/7/15 4:35:18 网站建设 项目流程

1. 项目改造:从JAR到WAR的关键步骤

当你需要将Spring Boot项目部署到东方通TongWeb时,第一步就是把项目从默认的JAR包改为WAR包。这个改造过程看似简单,但有几个关键点需要注意。

首先,修改pom.xml文件。这里有三处必须改动的地方:

<!-- 1. 修改打包方式为war --> <packaging>war</packaging> <!-- 2. 排除内嵌Tomcat --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> <!-- 3. 配置maven-war-plugin插件 --> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.6</version> <configuration> <failOnMissingWebXml>false</failOnMissingWebXml> </configuration> </plugin>

启动类也需要做相应调整。继承SpringBootServletInitializer并重写configure方法是关键:

@SpringBootApplication public class Application extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } public static void main(String[] args) { SpringApplication.run(Application.class, args); } }

我遇到过不少开发者在这里踩坑。最常见的问题是忘记排除内嵌Tomcat,导致部署后出现类冲突。另一个常见错误是没配置failOnMissingWebXml参数,导致打包失败。记住,现代Spring Boot项目通常没有web.xml文件,所以必须将这个参数设为false。

2. WAR包构建与验证

完成项目改造后,接下来就是构建WAR包。执行mvn clean package命令后,你会在target目录下看到生成的WAR文件。这里有几个验证点需要注意:

  1. 检查文件大小:通常WAR包会比JAR包大一些,因为包含了更多Web容器相关的文件
  2. 解压检查结构:可以用unzip命令查看WAR包内部结构,确保WEB-INF目录存在
  3. 检查依赖:确保lib目录下没有Tomcat相关的jar包

一个常见的错误是前端资源放置位置不对。在Spring Boot项目中,静态资源应该放在以下位置之一:

  • src/main/resources/static
  • src/main/resources/public
  • src/main/resources/META-INF/resources

我遇到过项目部署后前端页面404的问题,最后发现是因为开发团队把前端文件放在了src/main/webapp目录下,而这个目录在Spring Boot项目中默认是不被识别的。

3. TongWeb环境准备

在部署WAR包之前,需要确保TongWeb环境配置正确。以下是关键配置步骤:

  1. 字符集设置:这是中文环境下最常见的问题来源

    • 进入TongWeb控制台(默认地址http://ip:9060/console)
    • 找到"WEB容器配置" > "HTTP通道管理"
    • 将URL编码格式和默认编解码字符集都设为UTF-8
  2. 内存参数调整:特别是部署大型应用时

    • 编辑bin/external.vmoptions文件
    • 添加或修改以下参数:
      -Xms1024m -Xmx2048m -XX:MaxMetaspaceSize=512m
  3. HTTP方法支持:某些RESTful应用需要

    • 修改conf/tongweb.xml
    • 确保PUT和DELETE方法没有被禁用

我曾在项目中遇到PUT请求返回405错误的问题,花了半天时间才发现是TongWeb默认禁用了这些方法。修改配置文件后立即解决了问题。

4. 部署WAR包的两种方式

TongWeb支持两种主要的部署方式:控制台部署和命令行部署。每种方式各有优缺点。

4.1 控制台部署步骤

  1. 登录TongWeb控制台(默认账号thanos/thanos123.com)
  2. 进入"应用管理" > "部署应用"
  3. 选择"本机文件"上传WAR包
  4. 设置应用上下文路径(建议保持与WAR包名一致)
  5. 选择虚拟主机(默认server)
  6. 完成部署

控制台部署的优点是可视化操作简单,缺点是上传大文件时可能超时。我建议超过50MB的WAR包使用命令行部署。

4.2 命令行部署方法

进入TongWeb的bin目录,执行以下命令:

./commandstool.sh deploy \ --applocation /path/to/your.war \ --contextroot /yourapp \ --defaultvs server \ yourappname

参数说明:

  • --applocation: WAR包绝对路径
  • --contextroot: 应用访问路径
  • --defaultvs: 虚拟主机名
  • 最后一个参数是应用名称

命令行部署适合自动化脚本集成,特别是在持续集成/持续部署(CI/CD)流程中。我在实际项目中使用Jenkins配合这个命令实现了自动化部署。

5. 常见问题排查指南

即使按照上述步骤操作,部署过程中仍可能遇到各种问题。以下是几个典型问题及解决方案:

5.1 内存溢出问题

症状:应用运行一段时间后崩溃,日志中出现OutOfMemoryError

解决方案:

  1. 修改bin/external.vmoptions文件
  2. 增加内存参数,例如:
    -Xms2048m -Xmx4096m -XX:MaxMetaspaceSize=1024m
  3. 重启TongWeb服务

5.2 中文乱码问题

症状:请求参数或响应内容出现乱码

解决方案:

  1. 确认TongWeb的HTTP通道编码设置为UTF-8
  2. 检查应用本身的字符编码设置
  3. 如果是GET请求乱码,可能需要修改URL编码格式

5.3 应用启动失败

症状:部署后应用状态显示"启动失败"

排查步骤:

  1. 查看logs/server.log日志文件
  2. 常见原因:
    • 类冲突:检查是否有重复的jar包
    • 数据库连接失败:检查连接配置
    • 端口冲突:检查应用配置的端口是否被占用

5.4 静态资源404问题

症状:页面可以访问但CSS/JS等资源加载失败

解决方案:

  1. 检查资源文件是否被打包到WAR中正确位置
  2. 确认上下文路径配置正确
  3. 检查TongWeb的静态资源缓存设置

6. 多应用部署策略

当需要在同一台服务器上部署多个应用时,有两种主要方案:

6.1 多domain方式

这是官方推荐的方式,每个应用有独立的运行环境:

# 创建新domain ./domain.sh create yourdomain # 启动特定domain ./startservernohub.sh yourdomain

优点:

  • 应用完全隔离
  • 端口自动递增(9060,9061,...)
  • 独立日志文件

缺点:

  • 占用更多内存资源

6.2 多HTTP通道方式

通过创建多个HTTP通道实现:

  1. 创建新的虚拟主机
  2. 创建新的HTTP通道并绑定到该虚拟主机
  3. 部署应用时选择对应的虚拟主机

优点:

  • 资源占用较少
  • 配置相对简单

缺点:

  • 应用共享同一JVM
  • 日志文件混合

在实际项目中,我通常建议对重要应用使用多domain方式,对小型辅助应用可以使用多HTTP通道方式。

7. 性能调优建议

部署成功后,还可以进行一些性能优化:

  1. 连接池配置

    • 调整TongWeb的线程池大小
    • 根据应用特点设置合适的最大连接数
  2. JVM调优

    • 根据服务器内存情况调整堆大小
    • 选择合适的GC算法
  3. 静态资源缓存

    • 配置适当的缓存头
    • 启用gzip压缩
  4. 会话管理

    • 对于集群环境,配置合适的会话复制策略
    • 设置合理的会话超时时间

我曾经优化过一个性能很差的应用,通过调整线程池参数和JVM配置,将响应时间从2秒降低到了200毫秒左右。这说明适当的调优可以带来显著的性能提升。

8. 日常维护技巧

最后分享几个日常维护中的实用技巧:

  1. 日志管理

    • 定期清理logs目录下的日志文件
    • 配置日志轮转策略
  2. 监控建议

    • 监控关键指标:内存使用、线程数、请求响应时间
    • 设置合理的告警阈值
  3. 备份策略

    • 定期备份应用配置
    • 备份重要的部署描述文件
  4. 升级注意事项

    • 先在小规模环境测试升级
    • 做好回滚方案
    • 检查兼容性列表

记住,任何配置修改后都需要重启TongWeb才能生效。在生产环境中,建议在低峰期进行重启操作,并确保有完善的监控可以快速发现问题。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询