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

升级Quarkus与Vaadin至v24.x.x时遇访问类错误,求解决方案

解决Quarkus 2.16.5.Final升级Vaadin到24.x.x时的类访问错误

核心原因

Vaadin 24.x.x基于Jakarta EE 9+规范,依赖的Servlet API包名为jakarta.servlet.*;而Quarkus 2.16.5.Final基于Jakarta EE 8,提供的是javax.servlet.*版本的API。两者包名不兼容,导致编译或运行时找不到jakarta.servlet.http.HttpServletRequestWrapper类。

解决方案

方案1:升级Quarkus到3.x版本(推荐)

Quarkus 3.x全面支持Jakarta EE 9+,与Vaadin 24的依赖体系完全匹配,是长期维护的最优选择:

  • 修改项目构建文件(pom.xml或build.gradle),将Quarkus版本替换为3.x系列(如3.2.x、3.3.x,需确保与Vaadin 24版本兼容)。
  • 同步更新所有Quarkus相关依赖的版本至对应3.x版本。
  • 批量替换代码中的包名:将所有import javax.servlet.*替换为import jakarta.servlet.*,包括HttpServletRequest、HttpServletResponse等相关类的导入。

方案2:降级Vaadin至23.x.x版本(若无法升级Quarkus)

如果暂时无法升级Quarkus,需将Vaadin版本回退到23.x.x系列——该版本基于Jakarta EE 8,与Quarkus 2.16.5.Final的依赖完全兼容,可直接解决类找不到的问题。

额外排查步骤

  • 检查项目依赖树,确认没有同时引入javax.servlet和jakarta.servlet的冲突依赖:
    • Maven项目执行命令:mvn dependency:tree
    • Gradle项目执行命令:gradle dependencies
  • 若发现冲突,通过依赖排除规则移除多余的Servlet API依赖。

内容的提问来源于stack exchange,提问作者Mindaugas Jaraminas

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 01:40:00