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

clean install

然后开始踩坑了


一、踩小坑场景


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

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

image.png


其他博客给出的答案,关闭防火墙、修改 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);  
  }  
  
}

image.png


三、重新流程


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........


lankeren
44 声望6 粉丝

有效果,达到目标的努力是真努力,其余不能称之为努力。