zoukankan      html  css  js  c++  java
  • springboot 的war包在Tomcat中启动失败

    springboot 默认是通常是打包成jar的,里面会内置一个tomcat容器
    有时候我们需要使用以前打成war包的方式部署到对应的tomcat中,
    具体springboot 怎么从jar改成war的打包方式我就不细说了,百度一大把

    • 基本就是pom加一个spring-boot-starter-tomcat 的dependency scope为provided
    • packaging由jar改为war
    • 增加一个类 继承 SpringBootServletInitializer 复写configure 返回application.sources(原先主函数那个类.class);
    public class MyApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MyApplication.class);
    }
    

    public static void main(String[] args) {
    SpringApplication.run(MyApplication.class, args);
    }
    }

    clean package -Dmaven.test.skip=true 打包后,放到tomcat6 7 8各种报错
    很可能出问题的原因是springboot内置tomcat的版本和你实际部署到的tomcat不一致,放到正确的对应版本的tomcat下就解决了
    查看springboot 内置tomcat版本的方法
    参考 https://www.jb51.net/article/122547.htm
    查看pom

    <parent> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-parent</artifactId> 
     <version>1.5.6.RELEASE</version> 
    </parent>
    • 1
    • 2
    • 3
    • 4
    • 5

    这块配置就是Spring Boot父级依赖,有了这个,当前的项目就是Spring Boot项目了,
    spring-boot-starter-parent是一个特殊的starter,它用来提供相关的Maven默认依赖,
    使用它之后,常用的包依赖可以省去version标签。关于Spring Boot提供了哪些jar包的依赖,
    可查看C:Users用户.m2 epositoryorgspringframeworkootspring-boot-dependencies1.5.1.RELEASEspring-boot-dependencies-1.5.1.RELEASE.pom
    打开这个pom文件,搜索“tomcat.version” 会找到对应tomcat版本

    ps:tomcat 8.0 和tomcat 8.5 还是有区别的 ,本来我一直用8.0.x的版本 ,但是现在springboot的内置版本却是8.5.x的 ,放到8.0是报错的,必须8.5才行……

    ps2: war包部署到tomcat的项目访问要加上项目名

    转: https://blog.csdn.net/opopopwqwqwq/article/details/82260658

  • 相关阅读:
    gcc相关
    test
    第二次课
    VS快捷键
    第7章 站在对象模型的尖端
    第6章 执行期语意学
    第5章 构造, 析构, 拷贝语意学
    第4章 Function语意学
    第一次课
    第3章 Data语意学
  • 原文地址:https://www.cnblogs.com/duende99/p/10322768.html
Copyright © 2011-2022 走看看