Tomcat10的坑

最近在想复习一下servlet 刚好家里新买了一台mac,于是就把所有开发软件都装上了最新版。

intellij:2020,JDK:14, Tomcat:10

然后就碰上了Tomcat10这个玩意。

新建了一个Maven项目配置了Tomcat10之后页面跑起来正常。

一切看起来很Nice

但是!!

在之后我写servlet之后引入servlet-api 不管是3.0之前的版本还是最新版4.0.1都会报错。

(解释一下关于servlet的报名不同:3.0之前叫servlet-api 3.0之后改名叫Java.servlet-api了)

报错信息我就不截图了

大概是:javax.servlet is not cast to jaraka.servlet.

然后再次访问就变成了404

解决我大半天,下面把我的解决心路历程记录下来:

首先排查404的错误,我反复检查了servlet的配置,也尝试写了注解方法请求

都发现没问题啊。

有时也会报class not found : javax.servlet

然后检查了引入的dependcy

从4.01改到了3.0,之后设置了dependcy的作用范围provided:

<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>4.0.1</version>
  <scope>provided</scope>
</dependency>

然后就在怀疑maven自动导入的servlet包难道没有生效吗

就把maven进来的包各种挪动位置:

这里:

这里:

这里:

都试了。都没用。

要么404.要么javax.servletclass is not found 要么is not cast to jaraka.servlet.

我哭了。

等我去洗个澡回来。

突然醒悟!!

jaraka是个什么什么鬼!!!

于是去tomcat10的lib里面看了一眼servlet-api.jar这个包

这玩意里面的servlet包名竟然不是叫javax!!是jaraka

难怪报错信息是javax.servlet can not cast to jaraka.servlet

ok,找到问题了。

接下去把Tomcat10的servlet-api.jar导入到项目的lib下就OK了:

漂亮!折腾了我滴娘亲啊、

或者把整个Tomct10的lib引进来也是可以。

记录一下记录一下 用Tomcat10的朋友可以借鉴一下。

如果大佬有更好的办法也可以指点一下我。

-------------------------------------------------

后记:

我把Tomcat换成了9.0.34,maven完美匹配依赖的servlet包,再也不用手动去导包了。

还是Tomcat9舒服~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值