自学内容网 自学内容网

Tomcat10部署Servlet加载错误问题解决

Servlet加载错误:HelloServlet不是Servlet

环境信息:IDEA中的maven项目,tomcat10.1.33
问题信息:XXX.Servlet不是Servlet

在这里插入图片描述

问题原因:tomcat10将JavaEE也换成了Jakarta® EE; Jakarta® EE较以前的JavaEE有一个重要的更新:
包名由"javax.servlet.“ 改为 "jakarta.servlet.”

解决办法:
1.替换Servlet最新依赖
2.修改Servlet类中的引用,将javax.servlet.XXX改为 jakarta.servlet.XXX.

<!--    <dependency>-->
<!--      <groupId>javax.servlet</groupId>-->
<!--      <artifactId>javax.servlet-api</artifactId>-->
<!--      <version>3.1.0</version>-->
<!--      <scope>provided</scope>-->
<!--    </dependency>-->
<dependency>
      <groupId>org.glassfish.web</groupId>
      <artifactId>jakarta.servlet.jsp.jstl</artifactId>
      <version>2.0.0</version>
    </dependency>
    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-spec</artifactId>
      <version>1.2.5</version>
    </dependency>
    <dependency>
      <groupId>org.apache.taglibs</groupId>
      <artifactId>taglibs-standard-impl</artifactId>
      <version>1.2.5</version>
    </dependency>
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

Tomcat 8 开始支持 JavaEE8 javax 项目由 sun公司 (sun.com) 转给 glassfish组织 (glassfish.org) 维护运营, 被拆分为 jakarta 多个项目。所以从Tomcat 9 开始,Servlet的依赖需要引入glassfish的包,也就是jakarta.servlet.XXX


原文地址:https://blog.csdn.net/f135917h/article/details/144023404

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!