cannot be cast to javax.servlet.Servlet 解决

使用maven创建web项目的时候,通过添加依赖的方式来添加servlet-api,如下

cannot be cast to javax.servlet.Servlet 解决

通过maven的命令(tomcat:run)来启动项目,发现访问的时候报错,错误如下:

cannot be cast to javax.servlet.Servlet 解决

错误排查:

首先查看servlet,发现继承的是HttpServlet,并没有问题

cannot be cast to javax.servlet.Servlet 解决

在查看web.xml的配置,也发现没有问题

cannot be cast to javax.servlet.Servlet 解决

然后到网上查看资料得知是jar冲突。

因为在maven中的jar是有依赖范围的,而我们需要的servet-api.jar在tomcat中有,如果我们项目有也有这个jar的话,就会导致jar冲突。

我们可以打开自己本地的tomcat看一下里面有的jar,可以看到是有一个servlet-api.jar

cannot be cast to javax.servlet.Servlet 解决

解决办法:

在pom.xml中修改jar的依赖范围

cannot be cast to javax.servlet.Servlet 解决

再次启动项目,访问成功

cannot be cast to javax.servlet.Servlet 解决