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 {}
}
}