欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

解决Springboot部署到webapps下访问404

程序员文章站 2022-07-08 23:28:14
...

之前没有经历过手动打包、部署到服务器tomcat的 webapps

clean install

然后开始踩坑了


一、踩小坑场景


前提: 手动将项目打包成了 war 包了,并放入了 webapps 下,tomcat启动自动解压成功

访问 webapps 下的项目
localhost:8080/wechat/wx 路径没错,但是访问 404 资源不存在

解决Springboot部署到webapps下访问404


其他博客给出的答案,关闭防火墙、修改 tomcat/conf/web.xml、JDK版本(我觉得可能有影响,一开始我就把服务器上的JDK11换成了和项目所指定的JDK8一样了) .......


还有一个博客说,如果路径和配置上服务器是没问题的,那就不是服务器的问题了
(对,最大的可能就是自己的项目配置有问题)
肯定是项目本身有问题了,回到本地,本地完美运行。回顾自己的 application.yml 配置文件中,JDBC数据库的连接是本地的,然后服务器上并没有装mysql,可能是这样,导致项目在服务器可能根本就没有启动起来 ,然后访问资源不存在

修改过来了,然后还是访问 404


二、修改主配置类 (Application)


1.需要继承 SpringBootServletInitializer 类
@SpringBootApplication  
public class MainSpringApplication extends SpringBootServletInitializer {
2.重写一个方法
 protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
     return application.sources(SecurityApplication.class);
 }
3.最终效果
@SpringBootApplication  
public class MainSpringApplication extends SpringBootServletInitializer {  
  
    @Override  
  protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {  
        return application.sources(MainSpringApplication.class);  
  }  
  
    public static void main(String\[\] args) {  
        SpringApplication.run(MainSpringApplication.class, args);  
  }  
  
}

解决Springboot部署到webapps下访问404


三、重新流程


1.本地运行,功能和未改Application主配置类前一样
2.重新打包 clean install
3.停止 tomcat
4.上传 war 包到 webapps
5.启动 tomcat
6.请求url


成功了


四、过程遇到的其他小问题


Maven 打包报错 http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
一个很容易出现的错误:

但是也很容易解决:

1.你的target文件被占用了,无法打包。所以释放掉背占用target文件夹,然后打包。 (我的就是这个问题

2.项目更新以后,依赖的包有问题,直接clean,flush,然后打包。

3.你的maven项目,有父子项目依赖。 pom配置的方式不同,所以无法打包,就报这个错。 这时候,直接用parent项目进行clean,install,然后所有的包都打出来了。。

4........