Por defecto, la configuración de REST para aplicaciones FundeWeb 2, tiene deshabilitado el mapeo de POJOs y clases JAXB a JSON.
Ahora veamos un ejemplo con un POJO para convertir en JSON.
public class PistaAudio { String title; String singer; public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } public String getSinger() { return singer; } public void setSinger(String singer) { this.singer = singer; } }
Por último exponemos un método en nuestro servicio REST que acepte o devuelva objetos JSON usando las anotaciones: @Consumes, @Produces o ambas. En este ejemplo usamos la anotación @Produces indicando que el método devolverá un objeto JSON.
@GET @Path("/json") @Produces(MediaType.APPLICATION_JSON) public PistaAudio getPista() { PistaAudio pista = new PistaAudio(); pista.setTitle("Titulo 1"); pista.setSinger("Cantante 1"); return pista; }
Tras estos pasos nuestro servicio REST tendrá un nuevo método que acepta objetos de tipo JSON.
Para poder habilitar la configuración de mapeo automático de POJOs (no JAXB) a JSON, tenemos que editar el fichero web.xml y añadir lo siguiente:
<context-param> <param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name> <param-value>true</param-value> </context-param>