• 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容器有冲突。希望能帮到看过这篇文章的人。

  • 相关阅读:
    快速幂取模
    程序人生系列之新闻发布系统 0105
    JavaWeb之博客系统(四)
    [转]树状数组
    题目:免费午餐
    题目:删数问题
    题目:三元组
    题目:分子团
    题目:[汪老师结婚]婚礼上的袭击
    题目:[SBN号码]
  • 原文地址:https://www.cnblogs.com/dzcWeb/p/9849317.html
Copyright © 2020-2023  润新知