Pertimbangkan metode berikut:
@POST
@Path("/device")
@Consumes("application/json")
@Produces("application/json")
public String putDevice(String jsonObject, @Context HttpHeaders headers, Admin admin)
{
ObjectMapper mapper = new ObjectMapper();
try
{
return updateDevice(mapper.readTree(jsonObject), Utils.extractUserInfo(headers), admin.getServer(), admin.getPort());
}
catch (JsonProcessingException e)
{
return e.getMessage();
}
catch (IOException e)
{
return e.getMessage();
}
}
Ketika saya memanggil WS dari Tukang Pos, saya mendapatkan pengecualian berikut:
Mungkin penting untuk menyebutkan bahwa pengecualian tersebut hilang ketika saya menghapus parameter
jsonObject
dan mengedit metode seperti ini:
Setiap saran akan sangat dihargai.
@POST
@Path("/device")
@Consumes("application/json")
@Produces("application/json")
public Response putDevice(@Context HttpHeaders headers, Admin admin)
{
String output = admin.toString();
return Response.status(200).entity(output).build();
}
Berkat tautan yang diposting oleh Arnaud, saya mengetahui bahwa Anda hanya dapat memiliki satu parameter tanpa anotasi, dan parameter tersebut akan diproses sebagai badan permintaan. Jadi saya membuat perubahan yang diperlukan, dan inilah tampilan metodenya sekarang: