Tabla de Contenidos

Servicios REST con JSON

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.

Activar la Configuración de Rest con 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>

Bibliografia y referencias