Tomcat部署Java项目全指南

一、环境准备

1.1 基础环境要求

  • JDK 8+(推荐JDK 11)
  • Apache Tomcat 9.x+
  • Maven 3.6+
# 验证环境
java -version
mvn -v
catalina.sh version

二、传统Java Web项目部署

2.1 项目结构要求

my-webapp/
├─ src/
│  └─ main/
│     ├─ java/          # 源代码
│     ├─ resources/     # 配置文件
│     └─ webapp/        # WEB-INF/web.xml
├─ pom.xml

2.2 打包与部署流程

  1. 生成WAR包
mvn clean package

生成的target/my-webapp.war即为部署文件

  1. 部署到Tomcat
# 方式1:直接拷贝到webapps目录
cp target/my-webapp.war ${TOMCAT_HOME}/webapps/

# 方式2:通过Manager应用部署
访问 http://localhost:8080/manager/html
上传WAR文件部署
  1. 访问验证
http://localhost:8080/my-webapp/your-endpoint

2.3 关键配置项

<!-- pom.xml 必须包含 -->
<packaging>war</packaging>

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>

三、Spring Boot项目部署

3.1 两种部署模式对比

部署方式启动命令特点适用场景
内嵌Tomcatjava -jar app.jar开箱即用微服务/快速部署
外置Tomcat部署WAR到Tomcat资源复用传统环境适配

3.2 外置Tomcat部署步骤

3.2.1 修改pom.xm
<packaging>war</packaging>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope> <!-- 排除内嵌Tomcat -->
</dependency>
3.2.2 修改启动类
<packaging>war</packaging>

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope> <!-- 排除内嵌Tomcat -->
</dependency>
3.2.3 构建WAR包
mvn clean package -DskipTests
3.2.4 部署到Tomcat
cp target/springboot-app.war ${TOMCAT_HOME}/webapps/
3.2.5 访问验证
http://localhost:8080/springboot-app/actuator/health

3.3 内嵌Tomcat运行

# 直接运行JAR
java -jar springboot-app.jar

# 带参数运行
java -jar springboot-app.jar \
  --server.port=8081 \
  --spring.profiles.active=prod

四、配置差异对比

4.1 配置文件对比

配置项传统项目Spring Boot
端口设置server.xml Connector配置application.properties
上下文路径webapps目录名或context.xmlserver.servlet.context-path
静态资源webapp目录src/main/resources/static
日志配置log4j.propertieslogback-spring.xml

4.2 项目结构对比

传统项目结构                    Spring Boot结构
├─ src/main/webapp/            ├─ src/main/resources/
│  ├─ WEB-INF/                 │  ├─ static/     
│  │  └─ web.xml               │  ├─ templates/  
│  └─ index.jsp                │  └─ application.properties

五、运维监控

5.1 通用监控方式

# 查看实时日志
tail -f ${TOMCAT_HOME}/logs/catalina.out

# 健康检查(Spring Boot专属)
curl http://localhost:8080/actuator/health

5.2 内存调优建议

# 传统项目JVM参数(setenv.sh)
export JAVA_OPTS="-Xms512m -Xmx1024m -XX:+UseG1GC"

# Spring Boot启动参数
java -Xms512m -Xmx1024m -jar app.jar

六、常见问题解决方案

6.1 404错误排查

  1. 检查war包是否解压成功
  2. 验证上下文路径是否正确
  3. 确认控制器映射路径
  4. 查看Tomcat的localhost日志

6.2 类加载冲突

<!-- 传统项目解决依赖冲突 -->
<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
    <exclusions>
        <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
        </exclusion>
    </exclusions>
</dependency>

七、部署方式选择建议

考量因素传统项目部署Spring Boot部署
启动速度慢(依赖Tomcat启动)快(独立进程)
环境依赖需要预装Tomcat仅需JRE
配置复杂度高(多配置文件)低(统一properties)
集群部署需要外部协调内置健康检查机制
微服务适配困难天然支持

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值