springboot打成war包,并在tomcat中启动

本文详细介绍如何将Spring Boot应用从Jar包转换为WAR包,并部署到Tomcat服务器的过程。包括修改pom文件、启动类,以及Maven打包命令。同时,讲解了在Tomcat中加载WAR包的具体步骤,如放置位置、启动方式及常见问题排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

汇总篇:https://blog.csdn.net/weixin_44647371/article/details/100807631

一.打成war包

a.pom文件修改

01.首先得确保是web工程
		<packaging>war</packaging>
		
02.【可选项】打包时排除spring-boot-starter-web中内置的tomcat,不写大多数情况也无影响
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

b.启动类修改

在这里插入图片描述

#01.继承类
extends SpringBootServletInitializer
#02.重写子方法,加载启动类
  	@Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(this.getClass());
    }

c.maven打成war包

在这里插入图片描述

#注意如果导入了test依赖,不要使其被打包,末尾加-Dmaven.test.skip=true
mvn clean package -Dmaven.test.skip=true

二、tomcat加载war包

01.将war包放在tomcat/webapps目录下
(注,建议改名为"ROOT",这样url中无需输入工程名了,注意代码中是否写死了工程名)
02.启动tomcat,启动tomcat/bin/startup.bat(或startup.sh,sh不显示日志)
03.此时可以访问了(用tomcat端口),tomcat/conf/server.xml可修改端口
04.tomcat日志记录在tomcat/logs目录

  • 改成war包后,application.yml里的端口无效
  • war项目中new File("./")的相对路径用不了,请使用class.getResource().getPath()代替

可能遇到的问题
01.tomcat版本过老造成用不来,建议8.5.X版
02.启动日志没报错,但就是访问不了。检查前端页面里是不是把ip、端口、项目名写死了
03.linux上jdk版本太高,会导致缺失低版本jdk版本的jar包,根据tomcat日志信息去补充重新打包即可

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值