Рассмотрим следующий метод:
@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 из Postman, я получаю следующее исключение:
Возможно, важно упомянуть, что исключение исчезает, когда я удаляю параметр
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();
}
Благодаря ссылке, размещенной Арно, я узнал, что у вас может быть только один параметр без аннотации, и он будет обработан как тело запроса. Итак, я внес необходимые изменения, и вот как теперь выглядит метод: