springboot2.0项目发布外部tomcat7 踩过的一些坑

springboot2.0项目发布外部tomcat7 踩过的一些坑

工作场景:领导让我将一个springboot2.0的项目部署到一台服务器上。这台服务器上原始配置为jdk7 与 tomcat7.0.82。领导给我的配置要求是jdk8任意版本与tomcat7.0.92(检测漏洞少),然后开始入坑。

发布步骤大致如下:
1.pom添加依赖
主要是因为springboot项目利用的是自己内置的tomcat,这边就是不依赖内置的tomcat,将其编译的作用域设置为provided

<!--外置tomcat启动-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-tomcat</artifactId>
            <scope>provided</scope>
        </dependency>

2.修改pom打包方式
packaging 修改为war

<groupId>com</groupId>
    <artifactId>ding</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>war</packaging>

3.改造启动项
就是改成继承SpringBootServletInitializer;因为springboot 自己能认识自己的启动项,而外部tomcat是不认识的,所以要自己继承,并读取配置

@SpringBootApplication
@EnableAsync
//public class DingApplication{
public class DingApplication extends SpringBootServletInitializer {
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(DingApplication.class);
    }

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

4.可以打包了mvn clean package -Dmaven.test.skip=true
5.将war包直接放到tomcatwebapp目录下,启动并查看catania.out日志:
重点:启动tomcat,你可能会遇到一个错:
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
这是因为:tomcat提供的el-api 和项目里面的el-api.jar冲突;这时候你需要去找到自己本机上用的el-api的版本,copy到tomcat的lib目录下,覆盖原来的jar包

然后还有jdk版本由jdk7换成jdk8,我决定使用tomcat 指定jdk路径,做法如下:
以下配置均在linux环境下操作,jdk 目录为 /u01/jdk1.8.0_11
修改 catalina.sh ,在 脚本开头 增加 export JAVA_HOME=/usr/java/jdk1.8.0_60 设置。实际配置如图:
在这里插入图片描述

版本对应如下:

Spring boot 版本Spring Frameworkjdk 版本maven 版本
1.2.0 版本之前63.0
1.2.04.1.3+63.2+
1.2.14.1.3+73.2+
1.2.34.1.5+73.2+
1.3.44.2.6+73.2+
1.3.64.2.7+73.2+
1.3.74.2.7+73.2+
1.3.84.2.8+73.2+
1.4.04.3.2+73.2+
1.4.14.3.373.2+
1.4.24.3.473.2+
1.4.34.3.573.2+
1.4.44.3.673.2+
1.4.54.3.773.2+
1.4.64.3.873.2+
1.4.74.3.973.2+
1.5.04.3.673.2+
1.5.24.3.773.2+
1.5.34.3.873.2+
1.5.44.3.973.2+
1.5.54.3.1073.2+
1.5.74.3.1173.2+
1.5.84.3.1273.2+
1.5.94.3.1373.2+
2.0.05.0.283.2+

至此,配置就算完成了。
脱坑过程中参考的文章:
https://blog.csdn.net/wj197927/article/details/79563081
https://blog.csdn.net/jarniyy/article/details/80500651
https://blog.csdn.net/qq_14853889/article/details/80026885

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值