พิจารณาวิธีการต่อไปนี้:
@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();
}
}
เมื่อฉันโทรหา WS จากบุรุษไปรษณีย์ ฉันได้รับข้อยกเว้นต่อไปนี้:
อาจเป็นเรื่องสำคัญที่ต้องพูดถึงว่าข้อยกเว้นหายไปเมื่อฉันลบพารามิเตอร์
jsonObject
และแก้ไขวิธีการดังนี้:
ข้อเสนอแนะใด ๆ ที่จะได้รับการชื่นชมมาก
@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();
}
ต้องขอบคุณลิงก์ที่โพสต์โดย Arnaud ฉันได้เรียนรู้ว่าคุณสามารถมีพารามิเตอร์ได้เพียงตัวเดียวโดยไม่มีคำอธิบายประกอบ และพารามิเตอร์นั้นจะถูกประมวลผลเป็นเนื้อหาคำขอ ดังนั้นฉันจึงทำการเปลี่ยนแปลงที่จำเป็น และตอนนี้วิธีการมีลักษณะดังนี้: