En primer lugar, descargamos las librerías necesarias de aqui.
Una vez añadidas al proyecto creamos una clase principal para atender las peticiones, en mi caso SmsService
package com.nextret.smsreceiver.services;
import java.util.Date;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import org.json.JSONObject;
@Path("/SmsService")
public class SmsService {
@GET
@Path("/ping")
public String getServerTime() {
System.out
.println("RESTful Service 'MessageService' is running ==> ping");
return "received ping on " + new Date().toString();
}
@Path("/smsSend/{message}")
@GET
@Produces("application/json")
public String smsSend(@PathParam("message") String message){
JSONObject json = new JSONObject();
json.put("Clave 1", "Valor 1");
json.put("Clave 2", "Valor 2");
return json.toString();
}
@Path("/tst")
@GET
@Produces(MediaType.APPLICATION_JSON)
public Response tst(){
JSONObject json = new JSONObject();
json.put("Clave 1", "Valor 1");
json.put("Clave 2", "Valor 2");
return Response.status(200).entity(json.toString()).build();
}
}
Y un descriptor web.xmlDesplegamos en un Tomcat y introducimos la url :WS_SMSReceiver WS_SMSReceiver com.sun.jersey.spi.container.servlet.ServletContainer jersey.config.server.provider.packages com.nextret.smsreceiver.services 1 WS_SMSReceiver /*
http://localhost:8080/WS_SMSReceiver/SmsService/ping
Veremos la salida como : "received ping on Thu Feb 04 14:10:12 CET 2016"
A continuación paso a explicar un poco el código.
El servicio SmsService, que esta definido por @Path("/SmsService"), atiende una serie de peticiones que son cada uno de los métodos implementados en esta clase.
Por un lado tenemos un simple metodo llamado ping, al que se accede mediante la ruta : @Path("/ping"). Tiene como objetivo simplemente devolver la hora para comprobar que el WS se encuentra levantado y escuchando.
Por otro lado, y a modo de ejemplo, se han implementado dos métodos mas. Por un lado el método tst() ( @Path("/tst")) devuelve un objeto JSON al cliente con un codigo 200.
El método smsSend (@Path("/smsSend/{message}")) también devuelve un Json per esta vez prescindiendo del objeto Response, simplemente con un String, en este caso, el método acepta un parámetro para su posterior tratamiento en el mismo
No hay comentarios:
Publicar un comentario