Servlet版本冲突导致页面404

先准备好了Tomcat环境以及用Idea打了一个Servlet war包想看看效果,结果发现页面跳转一直报404错误,检查了跳转url,项目结构等情况后,问题依旧没有解决。最后偶然在网上看到了相关信息后终于找到问题原因。

原因

一直没有关注Java EE相关更新新闻,查询后才明白Servlet5.0已经将包命名空间从 javax变成了 jakarta,这就导致如果Tomcat里Servlex版本如果是最新版,而本地编译环境是早期版本,那么Tomcat解war包后程序无法正确通过 import找到相关jar包。

解决方法

  1. 首先检查Servlet版本是否相同。
  2. 本地编译依赖环境可以直接打开pom.xml查看为4.0。
  3. Tomcat则需要先解压以下文件 ${baseDir}\apache-tomcat-10.0.16\lib\servlet-api.jar,然后查看 META-INF文件夹下的 MANIFEST.MF,可以看出版本为5.0。
    Servlet版本冲突导致页面404
  4. 修改pom.xml的Servlet依赖,改成5.0即可。
 <dependency>
            <groupid>jakarta.servlet</groupid>
            <artifactid>jakarta.servlet-api</artifactid>
            <version>5.0.0</version>
            <scope>provided</scope>
 </dependency>

Original: https://www.cnblogs.com/allworldg/p/15898944.html
Author: allworldg
Title: Servlet版本冲突导致页面404

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583400/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球