Está en la página 1de 5

UNIVERSIDAD TÉCNICA PARTICULAR DE LOJA

ARQUITECTURA DE APLICACIONES
Sistemas Informáticos y Computación
Modalidad Abierta y a Distancia
Periodo: octubre 2018–febrero 2019
Octavo Ciclo

Estudiante:
Correo(s):

Calificación que merece: 6 / 6 pts. (Estime conscientemente el puntaje que cree merecer)

Escala general de
• Excelente (16 a 20 pts.) • Satisfactorio (6 a 10 pts.)
valoración según puntaje
• En progreso (11 a 15 pts.) • Iniciado (1 a 5 pt.)
total de rubrica:

PREGUNTA 2
1. Siguiendo un ejemplo guía en el directorio src de nuestro proyecto agregamos la
siguiente clase “servicio”, dentro del paquete com.url.rest:
package com.url.rest;

import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;

import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Response;

import org.apache.commons.validator.routines.UrlValidator;
import org.json.JSONException;
import org.json.JSONObject;

import com.google.gson.Gson;

@Path("/servicio")
public class servicio {
}
}

2. Importamos las funciones de la implementación Jersey, para hacer GET o POST


al servicio, manejar los paths en la URI, recibir parámetros en el path y los tipos
de medios de salida que se pueden producir.
En esta clase creamos el método que se encuentran en la ruta “servicio” el mismo
que valide una URL ingresada y la devuelva al cliente en forma de un json las
partes de la misma.
package com.url.rest;

import java.net.MalformedURLException;
import java.net.URI;
import java.net.URL;

import javax.ws.rs.POST;
* @param strURL
*/

@Path("/url")
@POST
@Produces("application/json")
public Response validarURL(String strURL) {
System.out.print("Iniciando --> " + "strURL: " + strURL);
Gson gson = new Gson();
// Invocamos al método para validar la URL desde commons-validator-
1.6.jar
UrlValidator validar = new UrlValidator();
int codeResponse = 0;
String json = "";
JSONObject jsonObject = new JSONObject(), obj = null;
try {
obj = new JSONObject(strURL);
String stUrl = obj.get("strURL").toString();
if (validar.isValid(stUrl)) {//Verifica si la url es válida
URL url = new URL(stUrl);
URI uri = URI.create(stUrl);
//Añade al objeto json las partes de la URL
jsonObject.put("Path", url.getPath());
jsonObject.put("Referencia", url.getRef());
jsonObject.put("Puerto", url.getPort());
jsonObject.put("Class", url.getClass());
jsonObject.put("Dominio", url.getHost());
jsonObject.put("Archivo", url.getFile());
jsonObject.put("Búsqueda", url.getQuery());
jsonObject.put("Host", url.getAuthority());
jsonObject.put("Scheme", url.getProtocol());
jsonObject.put("Protocolo", url.getProtocol());
jsonObject.put("Autoridad", url.getAuthority());
jsonObject.put("Puerto defecto", url.getDefaultPort());
jsonObject.put("Scheme specific part",
uri.getRawSchemeSpecificPart());
json = jsonObject.toString();
codeResponse =
Response.Status.ACCEPTED.getStatusCode();
} else {
json = gson.toJson("URL no válida");
codeResponse =
Response.Status.BAD_REQUEST.getStatusCode();
}
} catch (JSONException | MalformedURLException e) {//Captura las
excepciones por error de lectura de JSON.
e.printStackTrace();
json = gson.toJson("Error en la lectura del JSON");
codeResponse = Response.Status.BAD_REQUEST.getStatusCode();
}
System.out.print("Finalizando --> " + "json: " + json);
return Response.status(codeResponse).entity(json).build();
}
}

3. Ahora es necesario agregar al archivo web.xml, que eclipse nos generó sobre el
directorio WEB-INF de nuestro proyecto, la configuración de Jersey, y el servlet
mapping que es la ruta donde se invocara a nuestro servicio, el archivo queda
asi:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>wsURL</display-name>
<servlet>
<description>JAX-RS Tools Generated</description>
<servlet-name>Hola Mundo</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>Hola Mundo</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
</web-app>

4. Para compilar y correr nuestro código es necesario antes agregar a nuestro


proyecto la implementación Jersey a las librerías de nuestro proyecto, agregando
los archivos .jar en el directorio WEB-INF/lib.
5. Para visualizar nuestra aplicación, podemos publicar el servlet al dar Run as ->
Run on server. Si aún no tenemos configurado nuestro servidor tomcat, el wizard
nos guiara.
La URL donde encontraremos nuestro servicio está construida de la siguiente
Donde nuestro servidor es el servidor al que publicamos nuestro servlet, con su
puerto en el que funciona
 contextroot es generalmente el nombre de nuestro proyecto, en las
propiedades de nuestro proyecto podemos cambiar esto
 servletmapping es la ruta que definimos en el archivo web.xml donde estarán
nuestras clases.
 class-path es el nombre de la ruta que definimos en nuestra clase con
@Path(“/class-path”)

Resultados obtenidos desde POTSMAN


Ingresando al Servicio Web servicio.java
http://localhost:8080/wsURL/rest/servicio/url
Objeto Json de entrada:
{
"strURL":"ftp://ftp.servidorFiles.org/carpetas/misImg/"
}

También podría gustarte