You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

求助:重定向带安全上下文的URL时出现NoClassDefFoundError异常

解决Jersey ClientResponse的NoClassDefFoundError问题

这个java.lang.NoClassDefFoundError问题我碰到过不少,本质就是运行时JVM找不到指定的类文件,针对你遇到的com/sun/jersey/spi/inject/Errors$Closure缺失,大概率是Jersey依赖包出了问题,下面给你具体的排查和解决步骤:

  • 检查Jersey依赖的完整性
    com/sun/jersey/spi/inject/Errors$Closure属于Jersey的核心注入模块,如果你用Maven或Gradle管理依赖,要确保引入了正确且完整的Jersey核心包。以Maven为例,需要同时引入jersey-clientjersey-core,并且版本要保持一致:

    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-client</artifactId>
        <version>1.19.4</version> <!-- 选择稳定的1.x版本,和项目中其他Jersey包版本统一 -->
    </dependency>
    <dependency>
        <groupId>com.sun.jersey</groupId>
        <artifactId>jersey-core</artifactId>
        <version>1.19.4</version>
    </dependency>
    

    要是你手动导入jar包,一定要确认jersey-core.jarjersey-client.jar都添加到了项目的运行时类路径中,缺一个都不行。

  • 排查依赖版本冲突
    项目里如果同时引入了不同版本的Jersey包(比如1.x和2.x混着用),很容易导致类加载混乱。你可以用依赖分析命令找出冲突:

    • Maven:执行mvn dependency:tree | grep jersey查看依赖树
    • Gradle:执行./gradlew dependencies | grep jersey
      找到冲突的版本后,在pom.xml或build.gradle里用排除规则去掉不需要的那个版本,比如Maven中:
    <dependency>
        <!-- 这里是引入了冲突依赖的那个包 -->
        <groupId>xxx</groupId>
        <artifactId>xxx</artifactId>
        <exclusions>
            <exclusion>
                <groupId>com.sun.jersey</groupId>
                <artifactId>jersey-core</artifactId>
            </exclusion>
        </exclusions>
    </dependency>
    
  • 确认运行时类路径
    如果是Web项目,要检查这些Jersey jar包是否已经部署到服务器的WEB-INF/lib目录下;如果是独立Java应用,要确保启动脚本里包含了所有必要的Jersey jar包,别漏了。有时候IDE编译时能找到类,但打包部署时漏掉依赖,就会触发这个错误。

  • 顺手修正一个小细节
    你的代码里"Accept Language"的Header名称写错了,应该是"Accept-Language"(用连字符,不是空格),虽然这不是当前异常的原因,但可能影响后续请求的正确性,建议修正:

    ClientResponse resp = webResource.accept("application/json")
        .header("Authorization", "Basic " + authStringEnc)
        .header("Accept-Language", "en-US") // 修正Header名称
        .get(ClientResponse.class);
    

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

火山引擎 最新活动