您的位置:首页 > 运维架构 > Tomcat

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

2019-02-14 18:09 711 查看

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包直接放到tomcat 的webapp目录下,启动并查看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 Framework jdk 版本 maven 版本
1.2.0 版本之前 6 3.0
1.2.0 4.1.3+ 6 3.2+
1.2.1 4.1.3+ 7 3.2+
1.2.3 4.1.5+ 7 3.2+
1.3.4 4.2.6+ 7 3.2+
1.3.6 4.2.7+ 7 3.2+
1.3.7 4.2.7+ 7 3.2+
1.3.8 4.2.8+ 7 3.2+
1.4.0 4.3.2+ 7 3.2+
1.4.1 4.3.3 7 3.2+
1.4.2 4.3.4 7 3.2+
1.4.3 4.3.5 7 3.2+
1.4.4 4.3.6 7 3.2+
1.4.5 4.3.7 7 3.2+
1.4.6 4.3.8 7 3.2+
1.4.7 4.3.9 7 3.2+
1.5.0 4.3.6 7 3.2+
1.5.2 4.3.7 7 3.2+
1.5.3 4.3.8 7 3.2+
1.5.4 4.3.9 7 3.2+
1.5.5 4.3.10 7 3.2+
1.5.7 4.3.11 7 3.2+
1.5.8 4.3.12 7 3.2+
1.5.9 4.3.13 7 3.2+
2.0.0 5.0.2 8 3.2+

至此,配置就算完成了。
脱坑过程中参考的文章:
https://www.geek-share.com/detail/2732076585.html
https://blog.csdn.net/jarniyy/article/details/80500651
https://blog.csdn.net/qq_14853889/article/details/80026885

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: