美文网首页
Spring Boot 部署到 Tomcat7 上的兼容性问题

Spring Boot 部署到 Tomcat7 上的兼容性问题

作者: TomJones | 来源:发表于2019-05-13 17:55 被阅读0次

    小白个人心得,大佬勿喷

    我:”我要用spring boot搭一个小工具,已经可以用内嵌tomcat启动了“

    现实:”搭好了放在服务器上吧,服务器是tomcat7,spring boot内嵌的tomcat版本是8.0以上吧,解决一下包冲突问题“

    我:。。。。。网上查了n久,陷入了一个个坑,太菜了2333手动哭泣,终于得到步骤如下

    一:<packaging>war</packaging>在pom文件中申明打成war包,因为war包放在tomcat中的webapps会被直接解析

    二:因为要用外部的tomcat7,那么内嵌的tomcat8就得剔除,得专一不是,不能家里红旗不倒,外面彩旗飘飘

    <dependency>

        <groupId>org.springframework.boot</groupId>

        <artifactId>spring-boot-starter-tomcat</artifactId>

        <scope>provided</scope> ##这个就是表示tomcat只在编译和测试时候使用

    </dependency>

    三:使用外部的tomcat,那么就要继承SpringBootServletInitializer并重写它的方法

    public class RqaFinalApplication extends SpringBootServletInitializer {

     @Override

    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){

        return builder.sources(RqaFinalApplication.class);

     }

      public static void main(String[] args) {

    SpringApplication.run(RqaFinalApplication.class, args);

      }

    }

    其实以上三点都在网上能够轻易找到,网上介绍的一些方法是诸如剔除servlet-api等方式,但是我自己试了,都不奏效,报错javax.el-api-3.0.0.jar not loaded,所以第四点属于个人解决方式:

    四:在tomcat7中有el-api.jar,但并不支持spring boot,在tomcat的lib文件夹下加入自己下载的javax.el-api-3.0.0.jar即可,之后把打好的war包放在webapps目录下,就能够成功运行了,并不会给tomcat7带来麻烦

    小白言论,仅供参考

    相关文章

      网友评论

          本文标题:Spring Boot 部署到 Tomcat7 上的兼容性问题

          本文链接:https://www.haomeiwen.com/subject/ctpraqtx.html