Dynamic Web Module 6.0无法部署到Tomcat 10.1问题咨询
解决Dynamic Web Module 6.0项目无法部署到Tomcat 10.1的问题
检查Eclipse的Tomcat适配器兼容性
Tomcat 10.1适配Servlet 6.0规范,但Eclipse 2023-03默认的WTP(Web Tools Platform)组件可能没完全适配Tomcat10.1的Jakarta EE 9+生态。打开Window > Preferences > Server > Runtime Environments,选中你的Tomcat10.1实例点击Edit,确认是否能选择Dynamic Web Module 6.0。如果选项缺失,去Help > Eclipse Marketplace搜索"Eclipse Web Tools Platform",安装对应Tomcat10.1的最新适配版本。修正项目的Servlet API依赖
Tomcat10+开始把Servlet API的包名从javax.servlet改成了jakarta.servlet,Dynamic Web Module6.0对应Jakarta Servlet6.0。如果项目里还挂着旧的javax.servlet依赖,部署肯定失败:- 右键项目 > Properties > Java Build Path > Libraries
- 删除所有带
javax.servlet的依赖项 - 点击
Add Library > Server Runtime,选中你的Tomcat10.1实例,引入正确的jakarta.servlet类库
调整web.xml的命名空间(如果项目使用web.xml)
Servlet6.0的web.xml必须使用Jakarta的命名空间,替换旧的javax命名空间配置:<web-app xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_6_0.xsd" version="6.0">清理后重新部署
- 右键Tomcat服务器 > Clean,清除旧的部署缓存
- 右键项目 > Clean,清理项目编译文件
- 移除服务器上的旧项目,重新添加Dynamic Web Module6.0的项目,启动服务器测试
内容的提问来源于stack exchange,提问作者blqck
相关产品推荐
相关产品推荐

