Grails 3.1.8 : Spring Rest Docs using Rest Assured giving PayloadHandlingException: com.fasterxml.jackson.databind.JsonMappingException

scadyy

I'm trying to implement ascii doc with snippet for grails rest-api with rest-assured for json response :

    {
  "instanceList": [
    {
      "firstName": "Coy",
      "lastName": "T",
      "pictureUrl": null,
      "email": "[email protected]",
      "bio": null,
      "skills": [],
      "interestAreas": []
    },
    {
      "firstName": "Jane",
      "lastName": "D",
      "pictureUrl": null,
      "email": "[email protected]",
      "bio": null,
      "skills": [],
      "interestAreas": []
    },
    {
      "firstName": "Cause",
      "lastName": "C",
      "pictureUrl": "https://cc-picture.com",
      "email": "[email protected]",
      "bio": "cc beyond infinity",
      "skills": [],
      "interestAreas": []
    },
    {
      "firstName": "sachidanand",
      "lastName": "v",
      "pictureUrl": null,
      "email": "[email protected]",
      "bio": null,
      "skills": [],
      "interestAreas": []
    }
  ],
  "totalCount": 4
}

and the code snippet of UserDocumentationApiSpec(as IntegrationTest) :

void 'test and document get request for /user'() {
        expect:
        given(documentationSpec)
                .header("AuthToken", "TokenValue")
                .accept(MediaType.APPLICATION_JSON.toString())
                .filter(document('user-list-v1',
                preprocessRequest(modifyUris()
                        .host('127.0.0.1')
                        .removePort()),
                preprocessResponse(prettyPrint()),
                responseFields(
                        fieldWithPath("[].firstName").description("First name of user"),
                        fieldWithPath("[].lastName").description("Last name of user"),
                        fieldWithPath("[].pictureUrl").type(JsonFieldType.STRING).description("Picture Url of user"),
                        fieldWithPath("[].email").description("Email address of user"),
                        fieldWithPath("[].bio").description("Bio data of user"),
                        fieldWithPath("totalCount").description("Count of instanceList field"),
                        fieldWithPath("type").description("Type of result")
                ))).
                when()
                .port(8080)
                .get('/api/v1/user')
                .then()
                .assertThat()
                .statusCode(is(200))
    }

This part of code giving me error trace as :

org.springframework.restdocs.payload.PayloadHandlingException: com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
 at [Source: [B@2c6adbe3; line: 1, column: 1]
    at org.springframework.restdocs.payload.JsonContentHandler.readContent(JsonContentHandler.java:84)
    at org.springframework.restdocs.payload.JsonContentHandler.findMissingFields(JsonContentHandler.java:50)
    at org.springframework.restdocs.payload.AbstractFieldsSnippet.validateFieldDocumentation(AbstractFieldsSnippet.java:113)
    at org.springframework.restdocs.payload.AbstractFieldsSnippet.createModel(AbstractFieldsSnippet.java:74)
    at org.springframework.restdocs.snippet.TemplatedSnippet.document(TemplatedSnippet.java:64)
    at org.springframework.restdocs.generate.RestDocumentationGenerator.handle(RestDocumentationGenerator.java:192)
    at org.springframework.restdocs.restassured.RestDocumentationFilter.filter(RestDocumentationFilter.java:63)
    at com.jayway.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:73)
    at com.jayway.restassured.filter.session.SessionFilter.filter(SessionFilter.java:60)
    at com.jayway.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:73)
    at org.springframework.restdocs.restassured.RestAssuredRestDocumentationConfigurer.filter(RestAssuredRestDocumentationConfigurer.java:65)
    at com.jayway.restassured.internal.filter.FilterContextImpl.next(FilterContextImpl.groovy:73)
    at com.jayway.restassured.internal.RequestSpecificationImpl.applyPathParamsAndSendRequest(RequestSpecificationImpl.groovy:1574)
    at com.jayway.restassured.internal.RequestSpecificationImpl.get(RequestSpecificationImpl.groovy:159)
    at com.converge.docs.UserApiDocumentationSpec.$tt__$spock_feature_0_0(UserApiDocumentationSpec.groovy:73)
    at com.converge.docs.UserApiDocumentationSpec.test and document get request for /user_closure2(UserApiDocumentationSpec.groovy)
    at groovy.lang.Closure.call(Closure.java:426)
    at groovy.lang.Closure.call(Closure.java:442)
    at grails.transaction.GrailsTransactionTemplate$1.doInTransaction(GrailsTransactionTemplate.groovy:70)
    at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:133)
    at grails.transaction.GrailsTransactionTemplate.executeAndRollback(GrailsTransactionTemplate.groovy:67)
    at com.converge.docs.UserApiDocumentationSpec.test and document get request for /user(UserApiDocumentationSpec.groovy)
Caused by: com.fasterxml.jackson.databind.JsonMappingException: No content to map due to end-of-input
 at [Source: [B@2c6adbe3; line: 1, column: 1]
    at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
    at com.fasterxml.jackson.databind.ObjectMapper._initForReading(ObjectMapper.java:3781)
    at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3721)
    at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2819)
    at org.springframework.restdocs.payload.JsonContentHandler.readContent(JsonContentHandler.java:81)
    ... 21 more

Please correct me where I'm going wrong...

Nikhil Sharma

The only reason I see for this failing is that you are not getting the expected response from the /api/v1/user endpoint.

Follow these steps:

  1. Check that instances are there in the database.
  2. Check that you are sending the correct token.
  3. Write a test case using the RestBuilder and see if you actually get the expected response.

Your code and JSON looks fine.

Also, make sure you follow this issue and mark your empty array field as optional and explicitly provide a type for its contents.

I hope this helps.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Grails 3.1.8 : Spring Rest Docs using Rest Assured giving PayloadHandlingException: com.fasterxml.jackson.databind.JsonMappingException

From Dev

Grails 3 - Spring Rest Docs using Rest assured giving SnippetException when using JSON views

From Dev

com.fasterxml.jackson.databind.JsonMappingException: Duplicate creator property "id" (index 0 vs 1)

From Dev

error: com.fasterxml.jackson.databind.JsonMappingException: No serializer found

From Dev

com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain)

From Dev

com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize out of START_ARRAY token

From Dev

com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of : poja class no suitable constructor found

From Dev

com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain)

From Dev

com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role

From Dev

com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of org.springframework.data.domain.Sort out of START_ARRAY token

From Dev

com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class java.time.LocalDateTime] from String

From Dev

Android NoClassDefFoundError for com/fasterxml/jackson/databind/ObjectMapper

From Dev

Custom Jackson module not used in Spring REST docs test

From Dev

Using tabs in AsciiDoc (Spring Rest Docs)

From Dev

Jackson error com.fasterxml.jackson.databind.ser.ContainerSerializer: method <init>(Lcom/fasterxml/jackson/databind/JavaType;)V not found

From Java

Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

From Java

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Symbol"

From Dev

com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

From Dev

Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

From Dev

Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

From Dev

Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

From Dev

resolving com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

From Dev

spring-boot integration testing using rest-assured

From Dev

Spring REST Docs getting started

From Dev

com.fasterxml.jackson.databind.node.ObjectNode cannot be converted to org.codehaus.jackson.node.ObjectNode

From Dev

Spring Boot - Rest Assured methods not found

From Dev

What is the benefit of using Spring REST Docs comparing to Swagger

From Java

Java method Overloading with REST - org.codehaus.jackson.map.JsonMappingException

From Dev

yaml parsing using com.fasterxml.jackson

Related Related

  1. 1

    Grails 3.1.8 : Spring Rest Docs using Rest Assured giving PayloadHandlingException: com.fasterxml.jackson.databind.JsonMappingException

  2. 2

    Grails 3 - Spring Rest Docs using Rest assured giving SnippetException when using JSON views

  3. 3

    com.fasterxml.jackson.databind.JsonMappingException: Duplicate creator property "id" (index 0 vs 1)

  4. 4

    error: com.fasterxml.jackson.databind.JsonMappingException: No serializer found

  5. 5

    com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain)

  6. 6

    com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize out of START_ARRAY token

  7. 7

    com.fasterxml.jackson.databind.JsonMappingException: Can not construct instance of : poja class no suitable constructor found

  8. 8

    com.fasterxml.jackson.databind.JsonMappingException: Direct self-reference leading to cycle (through reference chain)

  9. 9

    com.fasterxml.jackson.databind.JsonMappingException: failed to lazily initialize a collection of role

  10. 10

    com.fasterxml.jackson.databind.JsonMappingException: Can not deserialize instance of org.springframework.data.domain.Sort out of START_ARRAY token

  11. 11

    com.fasterxml.jackson.databind.JsonMappingException: Can not instantiate value of type [simple type, class java.time.LocalDateTime] from String

  12. 12

    Android NoClassDefFoundError for com/fasterxml/jackson/databind/ObjectMapper

  13. 13

    Custom Jackson module not used in Spring REST docs test

  14. 14

    Using tabs in AsciiDoc (Spring Rest Docs)

  15. 15

    Jackson error com.fasterxml.jackson.databind.ser.ContainerSerializer: method <init>(Lcom/fasterxml/jackson/databind/JavaType;)V not found

  16. 16

    Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

  17. 17

    com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field "Symbol"

  18. 18

    com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

  19. 19

    Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

  20. 20

    Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

  21. 21

    Java.lang.NoClassDefFoundError: com/fasterxml/jackson/databind/exc/InvalidDefinitionException

  22. 22

    resolving com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException: Unrecognized field

  23. 23

    spring-boot integration testing using rest-assured

  24. 24

    Spring REST Docs getting started

  25. 25

    com.fasterxml.jackson.databind.node.ObjectNode cannot be converted to org.codehaus.jackson.node.ObjectNode

  26. 26

    Spring Boot - Rest Assured methods not found

  27. 27

    What is the benefit of using Spring REST Docs comparing to Swagger

  28. 28

    Java method Overloading with REST - org.codehaus.jackson.map.JsonMappingException

  29. 29

    yaml parsing using com.fasterxml.jackson

HotTag

Archive