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

Java NoClassDefFoundError异常及Jira本地登录POJO类技术咨询

排查NoClassDefFoundError异常并完善LoginApi POJO类

一、异常原因与解决办法

java.lang.NoClassDefFoundError: io/restassured/response/Response 这个异常的核心是运行时找不到RestAssured的Response类,常见场景和解决方式如下:

  • 依赖未正确引入:编译时IDE可能能找到类,但运行时类路径里缺了RestAssured的jar包。

    • 如果用Maven,在pom.xml里加依赖(要是你的代码不在测试目录下,记得去掉<scope>test</scope>):
      <dependency>
          <groupId>io.rest-assured</groupId>
          <artifactId>rest-assured</artifactId>
          <version>5.3.0</version> <!-- 用最新稳定版就行 -->
          <!-- <scope>test</scope> 主代码调用的话注释掉这行 -->
      </dependency>
      
    • 如果用Gradle,在build.gradle里加:
      dependencies {
          implementation 'io.rest-assured:rest-assured:5.3.0' // 主代码用implementation,测试用testImplementation
      }
      
  • 依赖版本冲突:项目里可能同时存在多个版本的RestAssured,导致类加载混乱。可以用下面的命令查依赖树找冲突:

    • Maven:mvn dependency:tree
    • Gradle:./gradlew dependencies
      找到冲突后,用<exclusions>(Maven)或exclude(Gradle)把旧版本排除掉。
  • IDE缓存问题:有时候IDE缓存会搞怪,试试清理缓存(比如IntelliJ的File -> Invalidate Caches...)再重新构建项目。

二、完善后的LoginApi POJO类

你的代码里setPassword方法没写完,另外为了更实用,我们补充构造方法、toString方法等,完整代码如下:

package com.rest.requestpojo;

import com.google.gson.annotations.Expose;
import com.google.gson.annotations.SerializedName;

public class LoginApi {
    @SerializedName("username")
    @Expose
    private String username;
    
    @SerializedName("password")
    @Expose
    private String password;

    // 无参构造:Gson反序列化时需要默认构造方法
    public LoginApi() {}

    // 全参构造:方便快速创建实例
    public LoginApi(String username, String password) {
        this.username = username;
        this.password = password;
    }

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    // 补全缺失的setPassword方法
    public void setPassword(String password) {
        this.password = password;
    }

    // 重写toString:调试时方便查看对象内容
    @Override
    public String toString() {
        return "LoginApi{" +
                "username='" + username + '\'' +
                ", password='" + password + '\'' +
                '}';
    }
}

代码说明:

  • 补全setPassword方法,保证属性读写完整;
  • 加无参构造:Gson反序列化JSON到对象时,默认需要这个;
  • 加全参构造:可以直接用new LoginApi("admin", "123456")快速创建实例;
  • 重写toString:日志打印或调试时,能直观看到对象的属性值。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 07:41:35