解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error

解决idea的web项目使用springBoot可以部署成功使用tomcat部署,在页面访问报错404,该错误导致的原因有好几个,依次从上往下检查,直到最终成功

1. 首先检查Application的启动类中有没有继承SpringBootServletInitializer 没有赶紧补上 

解决办法:在Application的启动类中继承SpringBootServletInitializer 并且重写configure方法即可

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error

package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import ymlConfig.YmlConfig;
import com.example.PropsConfig;

@SpringBootApplication(exclude={DataSourceAutoConfiguration.class,HibernateJpaAutoConfiguration.class})
@EnableConfigurationProperties({PropsConfig.class, YmlConfig.class})
//@ComponentScan("")
public class ReadApplication extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(ReadApplication.class);
    }

    public static void main(String[] args) {
        SpringApplication.run(ReadApplication.class, args);
    }
}
2. 在解决完上面访问报错404之后,有可能马上就会碰到再次部署访问页面报错

This application has no explicit mapping for /error, so you are seeing this as a fallback.

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping errorThis application has no explicit 

解决办法:

1、第一个可能的原因:没有找到要加载的路径,spring-boot会自动加载启动类所在包下及其子包下的所有组件.

   解决方法:

     原因是【Application启动类放的位置不对】要将Application放在最外层,也就是要包含所有子包,如果工程默认生成,则自己新建包路径即可。

比如你的groupId是com.google,子包就是所谓的com.google.xxx,所以要将Application放在com.google包下。

由于我的是gradle项目,所以在build.gradle文件中可以找到我的group

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error


2第二个可能的原因 ,路径没写对,赶紧检查路径


3. 在解决完上面访问报错404之后,有可能再次部署访问页面还是报错
那还有最后一招 Artifacs设置为war包发布

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error

3.1 如果没有在Artifacs中找到war包可以按照下图配置Toncat的war包

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error

3.2 点击OK之后配置出来的是 war.explore,还需在这个基础上配置war包

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error

3.3 点击web Application: Archive配置war包

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error

3.4 配置成功war包的页面如下

解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error


最后如果启动Tomcat 部署之后还是访问报错,那就建议直接用SpringBoot的Application启动吧,没这么多麻烦事









请参考以下结论:spring-boot会自动加载启动类所在包下及其子包下的所有组件

https://blog.csdn.net/qq616138361/article/details/78285877