Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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 {
}
}
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>