REST JSON y Java
REST JSON y Java
GRATIS
APUNTATE!!
REST JSON son dos acrónimos que cada día se usan más. Estamos ya muy acostumbrados a
recibir datos JSON en nuestras aplicaciones AJAX y HTML5 desde el servidor. De hecho se
ha convertido en un standard de facto.
www.arquitecturajava.com
REST JSON y Java
Vamos a ver como podemos abordar algo de este estilo desde el mundo Java. Para ello nos
vamos a apoyar en JQuery y en una petición AJAX sencilla a la cual solicitamos que los datos
se envíen en JSON.
var persona={"nombre":"pedro","apellidos":"perez"};
$.ajax({
url: "rest/servicioPersonas/personas",
type: "POST",
data: JSON.stringify(persona),
contentType: "application/json",
www.arquitecturajava.com
complete: resultado
});
 
Una vez hecho esto tendremos que configurar un servicio REST para que
pueda consumir datos en formato JSON. Para ello voy a utilizar
<a href="http://cxf.apache.org/">Apache CXF </a>
<pre>y configurarlo en un Tomcat7 . Se puede ver como configurarlo en
el siguiente artículo</pre>
package com.arquitecturajava.serviciosexternos;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
@Path("/servicioPersonas/")
@Produces("application/json")
www.arquitecturajava.com
public class ServicioPersonasJSON {
@POST
@Path("/personas")
@Consumes(MediaType.APPLICATION_JSON)
public void addPersona(Persona persona) {
System.out.println(persona.getNombre()+ persona.getApellidos());
}
}
Vamos a echar un veo a los ficheros de configuración que Apache CXF necesita para este
ejemplo en concreto funcione.
web.xml
&lt;dependencies&gt;
www.arquitecturajava.com
&lt;?xml version="1.0" encoding="UTF-8"?&gt;
&lt;web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"&gt;
&lt;listener&gt;
&lt;listener-
class&gt;org.springframework.web.context.ContextLoaderListener&
;lt;/listener-class&gt;
&lt;/listener&gt;
&lt;servlet&gt;
&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
&lt;servlet-
class&gt;org.apache.cxf.transport.servlet.CXFServlet&lt;/servl
et-class&gt;
&lt;load-on-startup&gt;1&lt;/load-on-startup&gt;
&lt;/servlet&gt;
&lt;servlet-mapping&gt;
&lt;servlet-name&gt;CXFServlet&lt;/servlet-name&gt;
&lt;url-pattern&gt;/rest/*&lt;/url-pattern&gt;
&lt;/servlet-mapping&gt;
&lt;/web-app&gt;
&amp;nbsp;
COMO REALIZAR
TODOS
www.arquitecturajava.com
MIS CURSOS
applicationContext.xml
&lt;bean
class="com.arquitecturajava.serviciosexternos.ServicioPersonasJSON"
/&gt;
&lt;/jaxrs:serviceBeans&gt;
&lt;jaxrs:providers&gt;
&lt;ref bean="jsonProvider"/&gt;
&lt;/jaxrs:providers&gt;
www.arquitecturajava.com
&lt;jaxrs:features&gt;
&lt;/jaxrs:features&gt;
&lt;/jaxrs:server&gt;
&lt;bean id="jsonProvider"
class="org.codehaus.jackson.jaxrs.JacksonJsonProvider"/&gt;
&lt;/beans&gt;
www.arquitecturajava.com