maven tomcat版本冲突异常
记录一个错误
在项目启动时报错:
java.lang.AbstractMethodError: org.apache.tomcat.websocket.server.WsSessionListener.sessionCreated(Ljavax/servlet/http/HttpSessionEvent;)V
引入Session报错。
原因:Springboot默认版本tomcat9使用的是servletAPI v4.0。但是SpringBoot 2.x还包含着 servletAPI v3.1,出现了servletAPI冲突问题,所以改变tomcat版本为tomcat8,因为tomcat8使用的是Servlet v3.1。
在pom中加上自己tomcat版本,如下(源自 @温暖的小冷风)
但是我这里加上后直接启动报错了。。。
删除spring boot 项目pom中servlet依赖(源自 @XiuL)
<!-- <dependency>-->
<!-- <groupId>javax.servlet</groupId>-->
<!-- <artifactId>javax.servlet-api</artifactId>-->
<!-- <version>3.1.0</version>-->
<!-- <scope>provided</scope>-->
<!-- </dependency>-->
…额。我项目中没有这个依赖
有些博客说是jdk/jre 下的lib里面的javax-sevlet-api.jar包的冲突,删掉即可
我这里是找到idea中的Edit Configuration… 下的 Environment的JRE,是Default的改为自己的jdk下的jre路径。
成功!