You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MacOS下Tom Cat 10运行项目报错:请求资源[/]不可用求助

解决Tomcat 10下访问根路径报错‘The requested resource [/] is not available’的问题

核心问题定位

Tomcat 10 是 Jakarta EE 9+ 兼容容器,而你的代码中使用的是旧的 javax.servlet 包API。从Tomcat 10开始,Java EE API已正式迁移到jakarta.servlet命名空间,旧的javax包类不会被容器识别,导致你的HomeServlet无法完成注册,进而web.xml中的欢迎页配置失效,访问根路径时出现资源未找到错误。

具体解决步骤

1. 替换Servlet API依赖与代码导入

  • 修改代码中的import语句:将所有javax.servlet开头的导入替换为jakarta.servlet:
package kz.bitlab.servlets;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(value = "/home")
public class HomeServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest request,
                          HttpServletResponse response) throws ServletException, IOException {

    }
    @Override
    protected void doGet(HttpServletRequest request,
                         HttpServletResponse response) throws ServletException, IOException {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.print("<h1>First BITLAB Java EE Application</h1>");
    }
}
  • 调整项目依赖:如果使用Maven,将原有的javax.servlet依赖替换为Jakarta版本:
<dependency>
    <groupId>jakarta.servlet</groupId>
    <artifactId>jakarta.servlet-api</artifactId>
    <version>5.0.0</version>
    <scope>provided</scope>
</dependency>

Gradle项目则对应修改为:

provided 'jakarta.servlet:jakarta.servlet-api:5.0.0'

2. 验证Servlet注册状态

启动Tomcat后,访问http://localhost:8080/manager/html(需提前在conf/tomcat-users.xml配置manager权限),进入已部署应用的Servlet列表,确认HomeServlet是否存在。若存在,说明注册成功。

3. 优化web.xml欢迎页配置

将web.xml中的欢迎页配置修改为直接指向Servlet路径,避免Tomcat优先查找物理文件:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                     http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0">
    <welcome-file-list>
        <welcome-file>/home</welcome-file>
    </welcome-file-list>
</web-app>

4. 检查IDEA部署配置

  • 确认Tomcat配置中,应用的**上下文路径(Context Path)**设置为/,否则需要访问http://localhost:8080/[上下文路径]/才能进入应用。
  • 检查项目编译输出目录(如target/classes)是否包含kz/bitlab/servlets/HomeServlet.class文件,确保IDEA已正确编译项目。

内容的提问来源于stack exchange,提问作者Almas Iskak

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:40:12