欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 汽车 > 维修 > Tomcat与Servlet加载问题

Tomcat与Servlet加载问题

2025/4/3 0:59:35 来源:https://blog.csdn.net/cuisidong1997/article/details/141742939  浏览:    关键词:Tomcat与Servlet加载问题

Tomcat与Servlet、JSP、JDK的版本适配问题(解决访问出现404和500的问题)

在Tomcat的官网中,我们可以看到不同版本的Tomcat适配的JDK、Servlet、Jsp以及EL的版本,如下:

由于我使用的是Tomcat10.0.12的版本,而我使用Maven导入的依赖如下

javax.servlet

javax.servlet-api

4.0.1

javax.servlet.jsp

javax.servlet.jsp-api

2.3.2-b01

这将导致Tomcat版本无法兼容Servlet版本(tomcat10将JavaEE更换成了Jakarta® EE,所以原Servlet包"javax.servlet.“更改成了"jakarta.servlet.”),我们在500的图中根本原因的第一行也可以看到:Register cannot be cast to class Jakarta.servlet.Servlet,即我使用的是Servlet是javax包里的,而Tomcat能够识别(适配)的是Jakarta包里的,而javax包里的Servlet类无法转换为Jakarta包里的Servlet类,所以显示了例外情况里的第一行:类cn.ken.controller.Register不是Servlet。

三、解决方法
既然是由于Tomcat版本与Servlet版本不匹配造成,那么自然就有对应的两种解决方法

1、降低Tomcat版本
因为tomcat10才改成Jakarta,故只需将Tomcat版本降低到10以下,例如Tomcat9等。

当然还要结合具体情况进行分析,让使用的Tomcat版本能够匹配自己使用的JSP或JDK等的版本

除了通过下载安装新的Tomcat(这显然比较麻烦),我们也可以通过Maven安装低版本的Tomcat插件来运行,具体操作可见Maven继承Tomcat插件

2、提高Servlet版本
将pom.xml中的Servlet更换为最新的依赖,与使用的Tomcat匹配,如下

org.apache.tomcat

tomcat-servlet-api

10.0.12

org.apache.tomcat

tomcat-jsp-api

10.0.12

重新加载Maven变更后即可成功访问Sevrlet

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词