线程" main"中的例外情况java.lang.NoClassDefFoundError:io / restassured / response / Response

时间:2018-03-26 10:31:45

标签: 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;
	}


}




服务类从JIRA获取响应后调用登录。我只是使用main方法来检查响应。



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");
	}

}




发布服务网址。



package com.rest.services;

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

}




下面是POM.XML页面,其中所有的dependecies都可用。



<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>
&#13;
&#13;
&#13;

以下是我在运行时获得的错误。 POM中是否缺少导致问题的依赖项或jar?请帮助我,我是新来的安慰。

&#13;
&#13;
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)
&#13;
&#13;
&#13;

2 个答案:

答案 0 :(得分:4)

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

尝试将其更改为

<scope>compile</scope>

答案 1 :(得分:0)

将我放心的依赖版本从3.0.0更改为3.0.7为我解决了这个问题。

<dependency>
    <groupId>io.rest-assured</groupId>
    <artifactId>rest-assured</artifactId>
    <version>3.0.7</version>
    <scope>test</scope>
</dependency>