cannot be cast to javax.servlet.Servlet 解决

た 入场券 2022-04-23 15:14 420阅读 0赞

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

20190330203913932.png

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ljZzMz_size_16_color_FFFFFF_t_70

错误排查:

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ljZzMz_size_16_color_FFFFFF_t_70 1

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

20190330204115628.png

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

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

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

watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3ljZzMz_size_16_color_FFFFFF_t_70 2

解决办法:

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

20190330204526921.png

再次启动项目,访问成功

2019033020454688.png

发表评论

表情:
评论列表 (有 0 条评论,420人围观)

还没有评论,来说两句吧...

相关阅读