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

引入Jakarta EE 9.1.0依赖仍遇java.lang.NoSuchMethodError问题求助

解决java.lang.NoSuchMethodError: org.glassfish.jersey.internal.config.SystemPropertiesConfigurationModel.hasProperty问题
  • 排查Jersey依赖版本冲突
    这个错误本质是类路径里存在不同版本的Jersey核心库,导致运行时加载的类没有目标方法。jakarta.jakartaee-api只是API规范,不包含具体实现,你需要确保项目中引入的Jersey实现版本和Jakarta EE 9.1兼容。
    执行mvn dependency:tree(Maven项目)或查看Gradle依赖报告,找出所有org.glassfish.jersey相关的依赖,检查版本是否统一,尤其是jersey-common、jersey-server这类核心包,建议使用和Jakarta EE 9.1匹配的Jersey版本(比如3.1.5,这是兼容Jakarta EE 9的稳定版)。

  • 调整provided依赖的影响
    你的jakarta.jakartaee-api设为provided,意味着运行时由容器提供该API。但如果容器本身的Jersey版本和你项目依赖的Jersey实现版本不匹配,也会引发冲突。
    如果是独立运行(比如用Tomcat、Jetty),可以把jakarta.jakartaee-api的scope改为compile,或者明确引入兼容的Jersey实现依赖,覆盖容器提供的版本。

  • 强制统一Jersey依赖版本
    在Maven的dependencyManagement中锁定Jersey相关依赖的版本,避免依赖传递带来的版本不一致:

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.glassfish.jersey</groupId>
                <artifactId>jersey-bom</artifactId>
                <version>3.1.5</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    

    这样所有Jersey子依赖都会使用指定的3.1.5版本,确保类的一致性。

  • 清理构建缓存
    有时候本地构建缓存里残留了旧版本的类文件,导致运行时加载错误。执行mvn clean install(Maven)或gradle clean build(Gradle)清理后重新构建。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 06:23:13