Tomcat 10.0.4 无法加载 Servlet,出现 404 错误:了解 Java EE 到 Jakarta EE 迁移
您可能会遇到访问问题部署在 Tomcat 10.0.4 上的 Web 应用程序中的 servlet 会导致404 错误。此行为源于 Java EE 和 Jakarta EE 标准之间的差异,这对 Tomcat 10 中的 servlet 有影响:
API 命名空间更改:
Servlet 的 API 命名空间Servlet 4.0(Tomcat 9 使用)中的 javax. 已更改为Servlet 5.0 中的 jakarta.(Tomcat 10 使用)。这意味着:
- 为 Servlet 4.0 编写的代码将无法使用 Tomcat 10 的 API jar 进行编译。
- 使用 web.xml 描述符的 Servlet 4.0 应用程序可能会引发异常并无法启动。
- 使用注释来声明自己的 Servlet 将不再起作用,就像在您的
ServletContainerInitializer 依赖:
依赖 ServletContainerInitializer 的应用程序,例如 Spring 和 Spring Boot,可能会因 @javax.servlet.WebServlet 而无法启动注释被服务器忽略。相反,服务器会扫描 @jakarta.servlet.WebServlet。
解决方案:
要解决这些问题,请考虑使用 Jakarta EE 的 Tomcat 迁移工具。此工具简化了必要的代码更改,以确保与新的 Java EE 到 Jakarta EE 迁移的兼容性:
- 更新项目的 Maven 依赖项或源代码以使用 jakarta.* API 命名空间。
- 使用正确的 Jakarta EE 命名空间修改任何注释或 XML 配置。
- 重新编译并测试
警告:
Tomcat 的下载站点包含有关命名空间更改的警告,强调从 Tomcat 9 迁移到 Tomcat 10 时需要进行代码调整以及稍后。
以上是为什么我的 Servlet 从 Tomcat 9 迁移到 Tomcat 10 后返回 404 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Atom编辑器mac版下载
最流行的的开源编辑器

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。