tomcat8的filter和tomcat9接口不一致

spring-boot-web:2.1.4版本中引入的是Tomcat9的依赖,filter接口和Tomcat8是不一致的,导致编译打包没问题,部署到Tomcat8失败

Posted by Rong on November 29, 2019

有个奇怪的spring boot项目,在jar包可以运行,在打成war包部署到远程服务器的Tomcat8中就失败,由于项目比较急,客户在电脑前看着解决,一时不知思路。

maven的子项目使用的Tomcat filter均实现了全部方法,此项目只实现doFilter方法,由于spring-boot-tomcat:2.1.4引用的是Tomcat9,其filter接口的init方法和destroy方法为default,IDEA不会编译报错,当打成war部署到Tomcat8的服务器时,由于Tomcat8的filter接口的init()和destroy()不是default的,导致启动失败!

开发环境和部署使用的依赖不一致,将隐形的错误留到了最后。

撒花★,°:.☆( ̄▽ ̄)/$:.°★