10 abril, 2020

Crear un Web Service Rest-Json y un Rest Client en Eclipse usando Jersey (Maven)

En este post aprenderemos a crear un servicio web Java Rest-Json usando Jersey como implementación de JAX-RS y Maven, que es una herramienta de software para la gestión y construcción de proyectos.

¿Qué es Jersey?

Jersey es un cliente Restful open-source, implementación de referencia de JAX-RS, el API de referencia para Web Service Restful. Este último a su vez en un API de Java que proporciona soporte a los web service creados bajo la arquitectura REST.

¿Qué es Maven?

Normalmente cuando trabajamos con Java/JavaEE el uso de librerías es algo común como en cualquier otro lenguaje de programación. Sin embargo, una librería puede depender de otras librerías para funcionar de forma correcta. Por ende, su gestión se puede volver tedioso a la hora de buscar las librerías y ver que versión exacta debemos de elegir. Así pues necesitamos más información para gestionarlo todo de forma correcta  y para ellos existe MAVEN, que es una herramienta que nos va a permitir tener una gestión correcta de nuestra librerías, proyectos y dependencias. Dentro de un proyecto Maven el archivo pom.xml (Proyect Object Model) es el de mayor importancia ya que contiene toda la información del artefacto que usará nuestro proyecto. Un Artefacto puede verse como una librería con esteroides (aunque agrupa mas conceptos). Contiene las clases propias de la librería pero ademas incluye toda la información necesaria para su correcta gestión (grupo, versión, dependencias etc).

PASOS - CREAR EL WEB SERVICE

1. Crear un Maven Project

Clic en File/New/Maven Project.


Seleccionamos el arquetipo "maven-archetypes-webapp" de "org.apache.maven.archetypes".


Group Id: identifica de forma exclusiva su proyecto en todos los proyectos. Una ID de grupo debe seguir las reglas de nombre de paquete de Java . Esto significa que comienza con un nombre de dominio invertido que controlas. Por ejemplo, org.apache.maven, org.apache.commons.

Artifact Id: es el nombre del jar sin versión. Si lo creó, puede elegir el nombre que desee con letras minúsculas y sin símbolos extraños. Si se trata de un jar de un tercero, debe tomar el nombre del jar tal como está distribuido.

Versión: si distribuye, entonces usted puede elegir cualquier versión típica con números y puntos (1.0, 1.1, 1.0.1, ...). No use fechas, ya que generalmente están asociadas con compilaciones SNAPSHOT (todas las noches). Si se trata de un artefacto de un tercero, debe usar su número de versión, sea lo que sea, y por extraño que parezca. Por ejemplo, 2.0, 2.0.1, 1.3.1.


Clic en "Finish" y tendremos la siguiente estructura


El error que no muestra va a desaparecer cuando agreguemos las dependencias.

2. Agregar las dependencias para este proyecto

Abrimos el archivo "pom.xml" y agregamos las siguientes dependencias:

javax.servlet-api: para trabajar con serlvets (hace que desaparezca el error que marca en el jsp).
jersey-core: para trabajar con Web Service Restful
jersey-json: para trabajar con Web Service Restful
jersey-servlet: para trabajar con Web Service Restful

No olvidemos que tenemos que cambiar la versión de Java de 1.7 a 1.8.


Guardamos los cambios y podemos observar que el error que nos marcaba desapareció. Asimismo, dentro del directorio Maven Dependencies se han descargados todas las librerías. Si no nos descarga las librerías de manera automática, debemos hacer clic derecho al proyecto y seleccionar la opción Maven/Update Project...


3. Actualizar la versión del Servlet (Opcional)

Actualmente nuestro proyecto se ha creado con la versión 2.1 de servlet y debemos cambiarlo a la versión 3.1. Para realizar ello, debemos ir a la pestaña Windows/Show View/Navigator.



En esta nueva perspectiva, seleccionamos nuestro proyecto y navegamos hasta la parte de settings, dentro de esta carpeta seleccionamos el archivo "org.eclipse.wst.common.project.facet.core,xml" y cambiamos la versión de la etiqueta jst.web a 3.1.



Debe quedar de la siguiente manera:
 <installed facet="jst.web" version="3.1"/>

Guaramos los cambios y abrimos el archivo de despliegue web.xml que se encuentra alojado dentro de la carpeta src/webapp/WEB-INF.

Este archivo también ha sido creado con la versión 2.3, debemos de cambiarlo a la versión 3.1.


Reemplazamos por el siguiente código:



Volvemos a la pestaña del Explorador de Proyecto, hacemos clic derecho a nuestro proyecto y seleccionamos la opción Maven/Update Project..

5. Aparecer directorio ocultos de Java

Clic derecho al proyecto y seleccionamos la opción /Build Path/Configure Build Path...

En la venta que se abre marcamos la casilla Maven Dependencies y hacemos clic en Aplicar.




Y hasta aquí ya tenemos nuestro proyecto listo para probar hasta este punto. Clic derecho al proyecto y seleccionar la opción Run As/ Run on Server.


6. Crear el modelo

Crear la clase VOUsuario.java dentro del paquete com.aprendec.ws.rest.



7. Crear el Servicio

Crear la clase ServiceLogin.java dentro del paquete com.aprendec.ws.rest.services.



8. Ejecutar aplicación

Clic derecho al proyecto y seleccionar la opción Run As/ Run on Server.


Ejecutar en Advanced Rest Client



PASOS - CREAR EL CLIENT

1. Agregar las dependencias

Abrimos el archivo "pom.xml" y agregamos las siguiente dependencia:

jersey-client: para trabajar con Web Service Restful


Guardamos los cambios y podemos observar que dentro del directorio Maven Dependencies se han descargados todas las librerías. Si no les descarga las librerías de manera automática, debemos hacer clic derecho al proyecto y seleccionar la opción Maven/Update Project...

2. Crear el cliente Rest

Creamos la clase RestClient.java dentro del paquete com.aprendec.ws.rest.client.


3. Ejecutar cliente

Clic derecho a la clase RestClient.java y seleccionar la opción Run As/ Java Application.

Nota: El servicio web debe estar iniciado junto con el servicio web que creamos anteriormente.


No hay comentarios, ¡cuéntame algo!

Me gustaría saber tu opinión. ¡Saludos!