Hola, llevo unos días intentando enviar un objeto JSON a un controlador en Spring y que éste lo convierta a un objeto del modelo para poder almacenarlo en la base de datos. Sin embargo, al hacer el envío de este objeto JSON al controlador, obtengo como respuesta un error 400.
Éste es el controlador:
@RequestMapping(value = "/save", consumes="application/json", method = RequestMethod.POST)
public String save(@RequestBody Servicio servicio) {
System.out.println("Nombre: " + servicio.getNombreServicio());
System.out.println("Descripción: " + servicio.getDescripcion());
if(servicio.getNombreServicio()!=null){
try {
servicioDAO.save(servicio);
} catch(Exception e) {
e.printStackTrace();
}
return "ok";
}
return "bad";
}
Éste es el test que realiza la petición y obtiene el error 400:
@Test
public void testSave() {
try {
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost(urlBase+"servicio/save");
StringEntity input = new StringEntity("{\"nombre\":\"servicio 3\",\"descripcion\":\"descripcion del servicio 3\"}");
input.setContentType("application/json");
postRequest.setEntity(input);
HttpResponse response = httpClient.execute(postRequest);
String responseSrt = EntityUtils.toString(response.getEntity());
System.out.println(responseSrt);
assertTrue(response.getStatusLine().getStatusCode() == 201);
} catch(Exception e){
e.printStackTrace();
fail();
}
}
Espero que alguien pueda ayudarme. Un saludo y gracias de antemano.