1

I am using Jersey 3.0.3. I am doing a unit test and posting an org.json.JSONObject. When I am receiving it in my endpoint the JSONObject is coming as a blank object. This issue is happening even when I send the POST request via Postman. How do I fix this?

My Unit Test:

@TestInstance(Lifecycle.PER_CLASS)
public class IgnoredItemPositiveTests extends JerseyTest {
    
    private String itemId;
    private JSONObject item;
    
    @Override
    protected Application configure() {
        itemId = "id1";
        item = new JSONObject();
        item.put("item_id", "id1");
        item.put("item_title", "title1");
        return new ResourceConfig(IgnoredItemService.class);
    }

    @Test
    public void ItemInsert_ItemIdNotPresent_Inserted() {
        System.out.println(item); // prints {"item_id":"id1","item_title":"title1"}
        Response response = target("ignored-item").request()
                .post(Entity.json(item));

        assertEquals("Http Response should be 201: ", Status.CREATED.getStatusCode(), response.getStatus());
    }
}

My Endpoint:

@Path("/ignored-item")
public class IgnoredItemService {
    @POST
    @Consumes(MediaType.APPLICATION_JSON)
    @Produces(MediaType.TEXT_PLAIN)
    public Response create(JSONObject item) {
        System.out.println(item); // prints {}
    }
}
khateeb
  • 5,265
  • 15
  • 58
  • 114

0 Answers0