Jetty启动后访问接口出现404错误,请求排查解决
Jetty 404错误排查与修复
错误原因分析
上下文路径与映射路径不匹配
你将ServletContextHandler的上下文路径设置为了"/example",这意味着所有通过该处理器处理的请求必须先带上/example前缀。而你把Jersey的Servlet映射到了"/api/*",所以实际可访问的有效路径是localhost:8080/example/api、localhost:8080/example/api/example,但你访问的是不带/example前缀的路径,Jetty找不到对应的处理逻辑,因此返回404。访问路径不符合配置规则
你尝试访问的localhost:8080/api、/api等路径,没有匹配到任何处理器的上下文路径,自然无法被正确路由。
修复方案
方案一:直接通过localhost:8080/api访问(推荐)
修改ServletContextHandler的上下文路径为根路径"/",这样请求无需额外前缀即可匹配到映射的/api/*路径:
ServletContextHandler handler = new ServletContextHandler(server, "/");
方案二:保留/example上下文路径
如果确实需要保留/example作为上下文前缀,那么访问时必须带上该前缀,比如:
localhost:8080/example/apilocalhost:8080/example/api/example
额外检查点
- 确保
api包下的Jersey资源类(带有@Path注解的类)配置正确,比如资源类上的@Path值是否和你期望访问的子路径匹配。 - 确认
CORSConfig的注册逻辑正确(这不是404的直接原因,但会影响跨域请求的正常执行)。
内容的提问来源于stack exchange,提问作者J. Doe
相关产品推荐
相关产品推荐

