springboot war包部署到tomcat7报错404

本文讲述了SpringBoot项目打包为WAR包在Tomcat7上部署时遇到404错误的情况。作者指出,常见的解决方案如修改启动类配置或去除内嵌Tomcat并未奏效,问题的根源在于Tomcat版本。升级Tomcat版本至8即可成功解决此问题。
摘要由CSDN通过智能技术生成

1.问题表述

springboot项目打包成war包放到tomcat7下的webapps下面,报错404请求资源不可用。报错截图完整如下:

网上说的基本上都是千篇一律的解决方案

比如重写application启动类的configure方法

@MapperScan("com.site.blog.my.core.dao")
@SpringBootApplication
public class MyBlogApplication extends SpringBootServletInitializer {
    public static void main(String[] args) {
        SpringApplication.run(MyBlogApplication.class, args);
    }

    // 不重写打包war部署到tomcat接口会报404
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(MyBlogApplication.class);
    }
}

          再比如去掉内嵌tomcat

其实并没有真正解决我的问题。

2.解决问题

其实这个问题是tomcat版本问题,直接把tomcat7换成tomcat8即可解决。如果没有解决欢迎留言,我们一起探讨解决~

Spring Boot 通常用于创建独立的、生产级别的基于Spring的应用程序,其默认方式是打成一个可执行的jar。然而,有时候出于特定的生产环境需求,我们需要将Spring Boot应用打war部署到外部的Tomcat服务器上。以下是一个基本的步骤说明: 1. **排除内置的Tomcat依赖**:在你的pom.xml文件中,需要将Spring Boot的内嵌Tomcat依赖设置为scope为provided,这样在打的时候就不会将Tomcat打war内。 ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency> ``` 2. **修改启动类**:让Spring Boot的启动类继承`SpringBootServletInitializer`,并重写`configure`方法,这样做是为了让Spring Boot应用能够在外部的Tomcat容器中正常启动。 ```java @SpringBootApplication public class MyApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(MyApplication.class); } public static void main(String[] args) { SpringApplication.run(MyApplication.class, args); } } ``` 3. **打应用**:使用Maven或Gradle命令将应用打war。对于Maven,通常使用`mvn clean package`命令。 4. **部署war**:将生成的war文件复制到Tomcat的`webapps`目录下。 5. **启动Tomcat**:启动Tomcat服务器,如果一切顺利,你的Spring Boot应用将作为应用上下文被部署到Tomcat中,并可以通过配置的端口和路径访问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值