解决Springboot部署到webapps下访问404
程序员文章站
2022-07-08 23:28:14
...
之前没有经历过手动打包、部署到服务器tomcat的 webapps
下
clean install
然后开始踩坑了
一、踩小坑场景
前提: 手动将项目打包成了 war 包了,并放入了 webapps 下,tomcat启动自动解压成功访问 webapps 下的项目
localhost:8080/wechat/wx
路径没错,但是访问 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);
}
}
三、重新流程
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........
上一篇: java 三种循环
下一篇: java的三种循环语句,及其嵌套使用