1) Crear el proyecto
click derecho / new / dynamic web project
por ejemplo
en porject name : services-api
2) Crear el deployment descriptor file (osea el web.xml)
click derecho sobre el proyecto/ java EE tools/ generate deployment descriptor stub
3) editar el web.xml
ir a WebContent/WEB-INF/web.xml
agregar las sgts lineas
.....
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey Web Application</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
4) convertir el proyecto a uno de tipo maven
(eso lo hacemos para poder agregar librerias como por ejemplo para manipular json)
click derecho sobre el proyecto/ configure / convert to maven project
5) editar el archivo pom.xml
agregar las sgts lineas
<dependencies>
{ "usuario": { "id": "1001", "nombre": "Juan", "apellido": "Perez" }}
<dependency>
<groupId>asm</groupId>
<artifactId>asm-all</artifactId>
<version>3.3.1</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-bundle</artifactId>
<version>1.14</version>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20090211</version>
</dependency>
</dependencies>
6) Crear la clase con los servicios
click dere. sobre el proyecto/ new / class
package> com.example
name> MyApiServices
en este ejemplo el servicio recibira por POST datos en formato json
y unicamente devolvera lo que recibe.
@Path("/")
public class MyApiServices {
public class MyApiServices {
@POST
@Path("/myApiService")
@Consumes(MediaType.APPLICATION_JSON)
public Response apiREST(InputStream incomingData) {
StringBuilder builder = new StringBuilder();
try {
BufferedReader in = new BufferedReader(new InputStreamReader(incomingData));
String line = null;
while ((line = in.readLine()) != null) {
builder.append(line);
}
} catch (Exception e) {
System.out.println("Error Parsing: - ");
}
System.out.println("Datos recibidos: " + builder.toString());
// return HTTP response 200 in case of success
return Response.status(200).entity(builder.toString()).build();
}
}
7) agregar el proyecto al Tomcat Server
en la pestaña de Servers
click derecho sobre el servidor creado previamente (en mi caso Tomcat v8.0 Server at localhost)
add/remove y agregamos nuestro pyecto.
8) ejecutar el Tomcat Server y testear el service
-click dere sobre el server y "start"
en firefox usamos la extension REstClient http://restclient.net/
en HEADER crear Content-type : application/json
Method: POST
Url: http://localhost:8080/services-api/api/myService
en el Body:
{
"usuario": {
"id": "1001",
"nombre": "Juan",
"apellido": "Perez"
}
}
"usuario": {
"id": "1001",
"nombre": "Juan",
"apellido": "Perez"
}
}
al hacer click en [send]
obtendremos
{ "usuario": { "id": "1001", "nombre": "Juan", "apellido": "Perez" }}
fuente:
http://crunchify.com/create-very-simple-jersey-rest-service-and-send-json-data-from-java-client/
http://crunchify.com/create-very-simple-jersey-rest-service-and-send-json-data-from-java-client/