解决idea的web项目使用springBoot可以部署成功使用tomcat部署报错404和浏览器访问报错This application has no explicit mapping error
解决idea的web项目使用springBoot可以部署成功使用tomcat部署,在页面访问报错404,该错误导致的原因有好几个,依次从上往下检查,直到最终成功
1. 首先检查Application的启动类中有没有继承SpringBootServletInitializer 没有赶紧补上
解决办法:在Application的启动类中继承SpringBootServletInitializer 并且重写configure方法即可
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.
This application has no explicit
解决办法:
1、第一个可能的原因:没有找到要加载的路径,spring-boot会自动加载启动类所在包下及其子包下的所有组件.
解决方法:
原因是【Application启动类放的位置不对】要将Application放在最外层,也就是要包含所有子包,如果工程默认生成,则自己新建包路径即可。
比如你的groupId是com.google,子包就是所谓的com.google.xxx,所以要将Application放在com.google包下。
由于我的是gradle项目,所以在build.gradle文件中可以找到我的group
2、第二个可能的原因 ,路径没写对,赶紧检查路径
3. 在解决完上面访问报错404之后,有可能再次部署访问页面还是报错
3.1 如果没有在Artifacs中找到war包可以按照下图配置Toncat的war包
3.2 点击OK之后配置出来的是 war.explore,还需在这个基础上配置war包
3.3 点击web Application: Archive配置war包
3.4 配置成功war包的页面如下
最后如果启动Tomcat 部署之后还是访问报错,那就建议直接用SpringBoot的Application启动吧,没这么多麻烦事
请参考以下结论:spring-boot会自动加载启动类所在包下及其子包下的所有组件.
https://blog.****.net/qq616138361/article/details/78285877