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

Quarkus 3.3.1默认404页面异常求助:是否为依赖所致?

Quarkus 3.3.1 403禁止替代默认404页面问题排查

你遇到的问题是:访问未匹配的路径(如根路径localhost:8080/或错误API路径localhost:8080/hellou)时返回403禁止,而非Quarkus默认的美观404页面,但正确API路径可正常访问。结合你提供的依赖,重点排查以下方向:

1. 优先排查commons-beanutils依赖

commons-beanutils:1.9.4是老旧版本,其依赖链中可能包含与Quarkus HTTP路由处理冲突的组件。虽然该库用于Bean属性操作,但部分旧版本会间接引入Servlet API相关的拦截逻辑,干扰Quarkus对未匹配路径的错误响应流程,导致返回403而非默认404。

解决建议:

  • 如果项目无需此依赖,直接移除它,重启服务验证是否恢复默认404页面。
  • 如果必须使用,可通过Maven排除可能的冲突传递依赖:
<dependency>
    <groupId>commons-beanutils</groupId>
    <artifactId>commons-beanutils</artifactId>
    <version>1.9.4</version>
    <exclusions>
        <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
        </exclusion>
    </exclusions>
</dependency>

2. 检查xercesImpl的类加载冲突

Quarkus内部已集成Jakarta规范的XML解析组件,手动引入xercesImpl:2.12.2可能引发类加载冲突,破坏HTTP请求的错误处理流程。若项目没有明确依赖该XML解析器,建议移除它,依赖Quarkus自带的解析实现即可。

3. 分析完整依赖树

执行Maven命令查看项目完整依赖树,排查是否有未预期的安全拦截器或Servlet过滤器被引入:

mvn dependency:tree

重点关注javax.servlet或jakarta.servlet相关的依赖,这类组件可能会拦截未匹配路径的请求,强制返回403状态码。

4. 显式启用Quarkus默认错误页面

若移除冲突依赖后问题仍存在,可在application.properties中显式配置启用默认错误页面:

quarkus.http.error-pages.enabled=true

该配置将强制Quarkus使用内置的错误页面处理逻辑,覆盖可能存在的自定义拦截行为。


内容的提问来源于stack exchange,提问作者Henrique Machado

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.11 10:55:53