Estoy creando un sitio web RESTful con Spring 3.0. Estoy usando ContentNegotiatingViewResolver
, así como HTTP Message Convertors (como MappingJacksonHttpMessageConverter
para JSON, MarshallingHttpMessageConverter
para XML, etc.). Puedo obtener el contenido XML con éxito, si uso el sufijo .xml en el último URL y lo mismo en el caso de JSON con el sufijo .json en URL.XML/JSON POST con RequestBody en Spring REST Controller
Obtención de contenido XML/JSON desde el controlador no me produce ningún problema. Pero, ¿cómo puedo ENVIAR el XML/JSON con el cuerpo de la solicitud en el mismo método del Controlador?
Por ej.
@RequestMapping(method=RequestMethod.POST, value="/addEmployee")
public ModelAndView addEmployee(@RequestBody Employee e) {
employeeDao.add(e);
return new ModelAndView(XML_VIEW_NAME, "object", e);
}
Gracias por reply.I' Intentaré esto y de vuelta a usted pronto :) –
Stoffer, he intentado el camino, usted ha respondido. Pero cuando intenté PUBLICAR cualquier contenido de XML/JSON en el cuerpo de la solicitud al método del controlador. Estoy consiguiendo el Excepción desde allí es decir ** HTTP Status 400 - Tipo de contenido 'text/plain; charset = UTF-8' no es compatible ** ¿Es porque yo estoy usando tanto ContentNegotiatingViewResolver y Http mensaje Convertidores ?? o hay alguna otra razón detrás de esto. –
Los convertidores en Spring se registran para cierto tipo de contenido (para el cuerpo de la solicitud) y aceptan (para la respuesta). Para json es 'application/json' y algunos otros. Para XML es 'application/xml' y algunos otros. Asegúrese de que su cliente envíe 'content-type: application/json' y' accept: application/json' y funcionará. –