美文网首页
Tomcat 10中Servlet无法正常使用的解决办法

Tomcat 10中Servlet无法正常使用的解决办法

作者: WSGNSLog | 来源:发表于2021-12-29 17:31 被阅读0次

    在一个java EE项目中,部署了Tomcat 10版本的服务器,在运行过程中发现webapp里面的项目都可以正常跑起来,但是写的servlet文件全都没反应.
    查了资料才知道原来在Tomcat 10中把包名从以往版本的javax改成了jakarta,而maven导包的时候依旧使用原来的javax,导致Tomcat 10服务器的Servlet接口和我写的servlet文件不匹配,从而无法正常运行。

    此时的依赖包

    import javax.servlet.ServletException;
    import javax.servlet.annotation.WebServlet;
    import javax.servlet.http.HttpServlet;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import java.io.IOException;
    

    解决方案
    在maven中导入Tomcat 10对应的jakarta.servlet-api

     打开项目中的pom.xml文件,找到<dependencies>内的javax.servlet-api,将其注释或删除
    

    旧的

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

    然后添加一个新的jakarta.servlet-api

    <dependency>
        <groupId>jakarta.servlet</groupId>
        <artifactId>jakarta.servlet-api</artifactId>
        <version>5.0.0</version>
        <scope>provided</scope>
    </dependency>
    

    注意version选的是5.0.0,另附# Tomcat和JDK版本的对应关系

    再点击Load Maven Changes更新maven


    image.png

    最后重新导入更新后的依赖包

    import jakarta.servlet.ServletException;
    import jakarta.servlet.annotation.WebServlet;
    import jakarta.servlet.http.HttpServlet;
    import jakarta.servlet.http.HttpServletRequest;
    import jakarta.servlet.http.HttpServletResponse;
    

    相关文章

      网友评论

          本文标题:Tomcat 10中Servlet无法正常使用的解决办法

          本文链接:https://www.haomeiwen.com/subject/duzvqrtx.html