线程“主”中的异常java.lang.NoClassDefFoundError:io / restassured / response / Response

chi*_*aya 0 java selenium jackson rest-assured jira-rest-api

用于登录到Jira localhost的POJO类。

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;

	public String getUsername() {
	return username;
	}

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

	public String getPassword() {
	return password;
	}

	public void setPassword(String password) {
	this.password = password;
	}


}
Run Code Online (Sandbox Code Playgroud)

服务类,以从JIRA呼叫后获得响应以进行登录。我只是使用主要方法来检查响应。

package com.rest.services;


import org.json.JSONObject;

import com.rest.requestpojo.LoginApi;

import io.restassured.RestAssured;
import io.restassured.response.Response;
import io.restassured.specification.RequestSpecification;

public class Service 
{
	public Response jiraLoginAuth(String username, String password)
	{
		LoginApi login = new LoginApi();
		login.setUsername(username);
		login.setPassword(password);
		
		JSONObject jsonObject = new JSONObject(login);
		
		RequestSpecification requestSpecification = RestAssured.given();
		requestSpecification.contentType("application/json");
		requestSpecification.body(jsonObject);
		Response response =requestSpecification.post(ServiceURL.jiraLoginUrl);
		
		System.out.println(response);
		
		return response;
		
	}
	
	public static void main(String[] args) {
		Service service = new Service();
		service.jiraLoginAuth("chinmaya","ck2016d");
	}

}
Run Code Online (Sandbox Code Playgroud)

要发布的服务网址。

package com.rest.services;

public class ServiceURL {
	
	public final static String jiraLoginUrl ="http://localhost:8080/rest/auth/1/session";
	

}
Run Code Online (Sandbox Code Playgroud)

以下是POM.XML页,其中提供了所有依赖项。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.restAPIFramework</groupId>
	<artifactId>restAPIFramework</artifactId>
	<version>0.0.1-SNAPSHOT</version>


	<dependencies>
		<dependency>
			<groupId>io.rest-assured</groupId>
			<artifactId>rest-assured</artifactId>
			<version>3.0.7</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>io.rest-assured</groupId>
			<artifactId>json-schema-validator</artifactId>
			<version>3.0.7</version>
			<scope>test</scope>
		</dependency>
		<!-- https://mvnrepository.com/artifact/com.google.code.gson/gson -->
		<dependency>
			<groupId>com.google.code.gson</groupId>
			<artifactId>gson</artifactId>
			<version>2.8.2</version>
		</dependency>
		<dependency>
			<groupId>org.json</groupId>
			<artifactId>json</artifactId>
			<version>20180130</version>
		</dependency>
	</dependencies>


</project>
Run Code Online (Sandbox Code Playgroud)

以下是我在运行时遇到的错误。在POM中是否缺少任何依赖项或jar导致问题?请帮我解决这个问题,我是新手。

Exception in thread "main" java.lang.NoClassDefFoundError: io/restassured/response/Response
	at java.lang.Class.getDeclaredMethods0(Native Method)
	at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
	at java.lang.Class.privateGetMethodRecursive(Unknown Source)
	at java.lang.Class.getMethod0(Unknown Source)
	at java.lang.Class.getMethod(Unknown Source)
	at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
	at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: io.restassured.response.Response
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
Run Code Online (Sandbox Code Playgroud)

小智 5

您需要更改pom文件中的保证范围,因为根据当前配置,依赖性仅在测试阶段可用。

尝试将其更改为

<scope>compile</scope>
Run Code Online (Sandbox Code Playgroud)