Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Servicios Web Actividad de Evaluación Formativa Ejercicios: 1. Instrucciones Generales
Servicios Web Actividad de Evaluación Formativa Ejercicios: 1. Instrucciones Generales
Servicios Web Actividad de Evaluación Formativa Ejercicios: 1. Instrucciones Generales
SERVICIOS WEB
EJERCICIOS
1. Instrucciones generales
Estimado(a) estudiante:
Para responder las preguntas y/o realizar los ejercicios, refiérase principalmente a
los contenidos trabajados en las semanas previas. También puede recurrir a fuentes
de información segura en Internet.
2. Ejercicios
Ejercicio #1
a.- pyton
b.- C++
c.- Java
d.- php
Ejercicio #2
Preguntas:
a.- http
b.- html
c.- xml
Ejercicio #3
Ejercicio #4
b.- Etiqueta
WSDL,<definitions>,<types>,<message>,<typeRoute>,<binding>,<services>
c.- Etiqueta
XML,<definitions>,<types>,<message>,<portType>,<binding>,<service>
d.- Etiqueta
XML,<declarations>,<types>,<message>,<portType>,<links>,<services>
CASOS
En el grupo ECTGroup requieren de unos que permitan que unas app de diferentes
proveedores logrén mantener a sus diferentes clientes centralizadamente, para esto se ha
solicitado desarrollar un conjunto de webservices que permitan agregar, modificar,
eliminar y consultar a los clientes.
Recientemente los diferentes proveedores se han puesto de acuerdo que para poder
representar correctamente al cliente los datos que necesitan son los siguientes:
Cliente
Modelo de datos
Requerimiento 1
Consultar Cliente: Para poder consultar un cliente es necesario el identificador rut, una vez
entregado la salida esperada es que entre los datos separados por comas
NOMBRE,APELLIDOS,PROVEEDOR_COD
Ejemplo:
JUAN ALBERTO, PEREZ LLANOS, 1
Modificar cliente, Para modificar el cliente es necesario entregar todos los datos del
cliente nuevamente Rut, nombres, apellidos, proveedor_cod, en el caso que el cliente no
exista se debe entregar el mensaje “Cliente no existe”
Nota: Un tema importante en los servicios, es que si ya existe un servicio esté debe ser
usado, por ejemplo: El servicio modificar cliente puede reutilizar el servicio consultar
cliente para mostrar el mensaje de Cliente no existe
Desarrollo problema
Nos aseguramos que el server contenga “Apache Tomcat or TomEE” para hacer uso de Tomcat en
XAMPP
NetBeans creará el proyecto con una página de inicio que por ahora ignoraremos (Index.jsp)
Una vez creado el proyecto y el paquete dentro de el empezamos creando una clase simple de
java de la mísma manera que creamos el package anterior
Esta clase se llamará WSCliente (WS por Web Service ya que tiene que ser representativo)
Primera cosa a hacer es agregar las etiquetas @WebService, NetBeans detectará que faltan
llamadas de librerías por lo que las agregamos seleccionando en las sugerencias cada vez que nos
notifique
Agregando librería*
Creamos método de consultar cliente con un parámetro de Rut ya que esto lo identifica
Creamos método de crear cliente con todos los parámetros que el cliente contiene (@WebParam)
Creamos finalmente el modificar cliente con los mismos parámetros que en la creación
Una vez creada la clase y métodos dentro de ella NetBeans detectará que se está haciendo uso de
los WebService y agregará por defecto una sección de WebService, dentro de el se debería ver el
servicio en sí y los métodos que ya creamos
En los métodos podemos agregar respuestas Dummy para probar el funcionamiento de los
servicios en SoapUI
Crear Cliente
Agragar Cliente
Modificar Cliente
Luego de esto Hacemos el Deploy del proyecto para que el TomCat pueda obtenerlo
TomCat Pide autentificación por lo que pedirá contraseña y usuario definidos por usuario al
momento de configurar el servidor, mientras se realiza el deploy se pedirá inicio de sesión
Posterior al Deploy nos dirigimos al WSCliente y seleccionamos “Test Web Service”, esto nos
dirigirá a una pagina donde se nos desplegará la url con wsdl que podremos usar en Soap UI
Parte de la pagina con wsdl, esta url nos servirá para ingresarla en un proyecto SOAP y probar los
métodos del WebService
Esto nos dará como resultado una serie de requests que nos deberían dar como respuesta los
mensajes que dejamos en los métodos.
Una vez tenemos los servicios funcionales nos dedicamos a crear la base de datos en Java para
almacenar datos de cliente
NetBeans, para que pueda hacer uso de los WebService y del TomCat requiere de una serie de
librerías
Además de esto, generalmente en tiempo de programación el mísmo IDE advertirá sobre la falta
de librerías
Luego de comprobar el uso de librerías dentro de NetBeans nos dirigimos a Servicios y nos
conectamos al servidor MYSQL
Ya con la conexión hecha y el servidor corriendo creamos una nueva base de datos con el nombre
de “bdcliente”
Y para comprobar que se creó la tabla correctamente nos dirigimos a la conexión en si,
desplegamos las tablas y quedaría algo así
A continuación necesitamos crear una clase extra que cumple el rol de conectar la base de datos
con el proyecto que ya tenemos hecho, esta clase tiene que estar dentro del package “services”
Esta clase tiene atributos que sirven de contraseña, nombre de usuario, el uso de los drivers y
finalmente una url, la cual dirige a la base de datos ya creada, esta URL es conseguible dentro de
las conexiones que ya hemos visto y debe estar dentro del atributo “DB_URL”
Copiamos y pegamos la url hasta el “?” y tendríamos la clase conexión lista para ser usada
Metodo Consultar cliente, que busca dentro de la base de datos un cliente usando el id como
índice de búsqueda.
Se crea un Try / catch para controlar excepciones dentro del evento de consultar el cliente
Conexión c = new conexión(); es una instancia de clase propia dentro del proyecto creada para
utilizar las librerias java que conectan a la base de datos MySql con los Webservice.
conn = c.conectar(); se utiliza el método conectar dentro de la clase conexión con el usuario, pass,
y los parámetros que se van a utilizar
Y se le asigna una consulta donde pregunte con el signo “?” el rut del cliente que se quiere
desplegar los datos dentro de la BD
stmt.setInt(1, rut); el uno es la primera incognita en la consulta de sql y se le asigna RUT dentro de
esa incognita
List array = new ArrayList(); se instancia una lista y ahí se guardarán los eventos de la consulta
Cuando es solo un registro el que uno va a utilizar se utiliza un if para desplegar la salida, en caso
contrario se usaría un while para desplegar multiples registros.
if(rs.next()){
Se crea un if para controlar que la base de datos no reconozca ninguna id de cliente como valida y
se despliega un mensaje de error en el caso correspondiente
if(salida.equals("")){
stmt.close();
conn.close();
return salida;
Metodo AgregarCliente
Primero que nada dentro de los argumentos que van a ser ingresados se consideran como
@WebParam, y en este caso serían el rut, nombres, apellidos y el código de proveedor
Se crea un IF que valide que el cliente no exista, este toma el método ya creado y lo utiliza para
recorrer la base de datos en busca de un rut igual al ingresado
Y en caso contrario se ingresa al ELSE, el cual contendrá un try catch con similares características a
el ConsultarCliente
Try{
catch(Exception e)
Metodo Modificar cliente, que toma un id de cliente para modificar sus datos dentro de la BD
Luego de crear el ELSE y el TRY, dentro de este mísmo se utiliza el siguiente código
Esta vez se cambia de orden las variables y dejamos la id del cliente al final
import java.sql.Connection;
import java.sql.DriverManager;
En este método creamos una serie de variables String que contendrán variable de conexión
Catch al final del TRY para controlar cualquier evento externo que genere una exception
catch(Exception e)
return null;