复盘:
公司项目开发时使用的SpringBoot框架版本为2.1.4,甲方提供的部署环境为阿里的EDAS平台,使用的tomcat版本为阿里的taobao-tomcat 7。部署项目时发现报错。
Caused by: java.lang.NoClassDefFoundError: javax/el/ELManager
查了一下发现,SpringBoot 2.0及以上版本需要一个能支持Servlet 3.1的容器。Tomcat 7只实现到Servlet 3.0,因此不能与SpringBoot 2.0一起使用。
解决方法:
除了常规的不使用SpringBoot内置tomcat的处理外,还需在pom文件中添加这3个依赖:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>5.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.glassfish</groupId>
<artifactId>javax.el</artifactId>
<version>3.0.1-b08</version>
</dependency>
<dependency>
<groupId>javax.el</groupId>
<artifactId>javax.el-api</artifactId>
<version>3.0.0</version>
<scope>provided</scope>
</dependency>