Springboot項目打成war包,部署到tomcat上,正常啟動訪問報錯404


前言:

  項目介紹,此項目是一個Maven多模塊項目,模塊項目:all(父模塊);util (公用的工具類);dao(實體類、業務類、mapper、mapper.xml);business(業務service);app-root(是一個父級項目,包含了 backend、pc、mobile、schedule)……

  結構圖:

復制代碼
all +
-- app-root +
   -- app-backend
   -- app-pc
   -- app-mobile
   -- app-schedule
-- business
-- dao
-- util
復制代碼

錯誤:

  錯誤介紹,我把app-backend項目用Maven打成war包之后,上傳到生產的tomcat上,tomcat能正常啟動。但是,訪問的時候報404。 

解決方法:

   1、在app-backend項目中另外創建一個類(BackendInTomcatApplication)跟啟動類(AppBackendApplication)在同一個包下,類代碼如下

 

復制代碼
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;

/**
 * @author wang.hz
 * @Date 2018/7/4
 * <p>解決springboot打成war包,部署tomcat后訪問404問題</p>
 */
public class BackendInTomcatApplication extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(AppBackendApplication.class);
    }

}
復制代碼

 

 

 

  2、在app-backend項目的pom.xml,中修改如下依賴。

復制代碼
<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-web</artifactId>
   <!--忽略內嵌tomcat,打包部署到tomcat。注*本地運行的時候要把這一段忽略引入個注釋掉,要不然項目啟動不了-->
   <exclusions>
      <exclusion>
         <groupId>org.springframework.boot</groupId>
         <artifactId>spring-boot-starter-tomcat</artifactId>
      </exclusion>
   </exclusions>
</dependency>
復制代碼

 

總結:

  我通過上面兩步,問題就解決了。報錯原因是因為springboot內嵌的tomcat和我們的tomcat容器有沖突。希望能幫到看過這篇文章的人。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM