在servlet中有调用servletContext.addListener这个方法。但是在但是发现在servletContext中并没有这个addListener方法,但有确实引用了servlet-api这个jar,后来查到,在tomcat中有servlet-api的jar包,在maven中也有引用了servlet-api的jar,所以去掉在pom中去掉配置,因为在依赖中servlet-api-2.4是addListener方法的,所以去掉,重新测试,发现在pom中去掉配置后,依然在maven依赖中有servlet-api(不知道为什么),所以再修改过程中尝试着,在pom引用其他的版本的servlet-api希望能有addListener方法,但是都不行,所以只能用tomcat中的servlet-api。
那就要解决为什么我在pom中明明没有配置servlet-api为什么还有在依赖中出现servlet-api
解决方法:
网上都说servlet-api冲突是因为项目部署的时候WEB-INFO/lib下面的servlet-api和servlet中的servlet-api产生冲突,其实我的不然。因为我的项目是用maven管理的,在pom.xml中配置包依赖的时候配置了commons-logging包的依赖,而commons-logging包又依赖于servlet-api,因此我认为servlet-api把后来我们配置的版本给冲掉了。解决办法如下:
第一种方法:
第二种方法:
我解决的方法是用的是第二种,把servlet-api配置在最前面