2014-05-13 2 views
3

안심으로 사용하는 RESTful API 테스트를 구현하려고하지만 시도 할 때 널 포인터 예외로 실행 중입니다. get 액션을 호출합니다. 권한 부여는 사용자 정의 방식, 그래서 내가 요청에 대한 승인 서명을 일단, 나는 요청에 헤더로 추가 :안부에서 get을 호출 할 때 Null 포인터 예외 : Null 객체에 'assertionClosure'속성을 가져올 수 없습니다.

String auth = ...CUSTOM ALGORITHM ...; 
    String pragma = ... OTHER CUSTOM HEADER ...; 

    RequestSpecification requestSpec = new RequestSpecBuilder() 
     .addHeader("Authorization", auth) 
     .addHeader("pragma", pragma) 
     .build(); 

    RestAssured.baseURI = "https://blahblah.staging.somewhere.net"; 
    RestAssured.port = 443; 
    RestAssured.basePath = "/endpoint_name/somefolder/resource?status=active"; 
    RestAssured.urlEncodingEnabled = false; 

    requestSpec.get(); 

이 다음과 같은 오류가 발생합니다

java.lang의를. NullPointerException : null 개체에 'assertionClosure'속성을 가져올 수 없습니다.

답변

4

GET을 호출하려면 RestAssured.given()을 사용해보십시오. 다음과 같은 방법으로 requestSpec을 사용할 수 있습니다.

RestAssured.given() 
.spec(requestSpec) 
.log().all() 
.get() 
.then() 
.log().all() 
.statusCode(200); 
+0

OP와 비슷한 문제인데, 해결책은 내 문제를 해결했습니다. 왜 처음에는 제대로 작동하지 않았는지 모르지만, 안심할 수없는 버그처럼 보입니다. –

0

제 동료가 마침내 문제가 무엇인지 알아 냈습니다. 추가 보안을 위해 사용자 정의 인증 시스템을 사용하며 문제는 생성 된 인증 헤더 값에 대한 타임 스탬프와 관련이 있습니다. 타임 스탬프가 너무 오래되었습니다.

+0

동일한 문제가 있지만 인증 헤더에 타임 스탬프 문제가 없습니다. 나는 가능한 한 가지 이상의 원인이 있다고 생각합니다. –