解決Springboot部署到webapps下訪問404

以前沒有經歷過手動打包、部署到服務器tomcat的 webappsjava

clean installl

而後開始踩坑了mysql


1、踩小坑場景


前提: 手動將項目打包成了 war 包了,並放入了 webapps 下,tomcat啓動自動解壓成功

訪問 webapps 下的項目
localhost:8080/wechat/wx 路徑沒錯,可是訪問 404 資源不存在web

image.png


其餘博客給出的答案,關閉防火牆、修改 tomcat/conf/web.xml、JDK版本(我以爲可能有影響,一開始我就把服務器上的JDK11換成了和項目所指定的JDK8同樣了) .......sql


還有一個博客說,若是路徑和配置上服務器是沒問題的,那就不是服務器的問題了
(對,最大的可能就是本身的項目配置有問題)
確定是項目自己有問題了,回到本地,本地完美運行。回顧本身的 application.yml 配置文件中,JDBC數據庫的鏈接是本地的,而後服務器上並無裝mysql,多是這樣,致使項目在服務器可能根本就沒有啓動起來 ,而後訪問資源不存在數據庫

修改過來了,而後仍是訪問 404 apache


2、修改主配置類 (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


3、從新流程


1.本地運行,功能和未改Application主配置類前同樣
2.從新打包 clean install
3.中止 tomcat
4.上傳 war 包到 webapps
5.啓動 tomcat
6.請求url


成功了tomcat


4、過程遇到的其餘小問題


Maven 打包報錯 http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
一個很容易出現的錯誤:

可是也很容易解決:服務器

1.你的target文件被佔用了,沒法打包。因此釋放掉背佔用target文件夾,而後打包。 (個人就是這個問題app

2.項目更新之後,依賴的包有問題,直接clean,flush,而後打包。webapp

3.你的maven項目,有父子項目依賴。 pom配置的方式不一樣,因此沒法打包,就報這個錯。 這時候,直接用parent項目進行clean,install,而後全部的包都打出來了。。

4........

相關文章
相關標籤/搜索