0% encontró este documento útil (0 votos)
32 vistas8 páginas

Lab WS 2

El documento describe la creación de un web service con JAX-WS que se conecta a una base de datos MySQL. Se define una base de datos llamada "universitario" con una tabla "nombres". Luego se crea un proyecto Java con un web service que contiene operaciones para recuperar nombres y códigos de clientes almacenados en la base de datos. Finalmente, se prueba el web service ingresando parámetros para verificar que devuelve los resultados correctamente.

Cargado por

Angelo Guanilo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
32 vistas8 páginas

Lab WS 2

El documento describe la creación de un web service con JAX-WS que se conecta a una base de datos MySQL. Se define una base de datos llamada "universitario" con una tabla "nombres". Luego se crea un proyecto Java con un web service que contiene operaciones para recuperar nombres y códigos de clientes almacenados en la base de datos. Finalmente, se prueba el web service ingresando parámetros para verificar que devuelve los resultados correctamente.

Cargado por

Angelo Guanilo
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 8

Web Services

Laboratorio Nro. 11

Web Services con JAX-WS con MySQL

I. Competencia General:

Mostrar la capacidad que tienen los web services


cuando se combinan con componen como una base
de datos en MySQL.

II. Definiendo el Depositario de Datos con MYSQL

a) En el servidor de base de datos Creas una base


de datos de nombre “universitario”
Fig. 02: Seleccionando el tipo de proyecto
d) Luego ejecutas en tu MySQL 5.0 el script de la
Base de Datos, el cual se creará la tabla nombres:
b) El nombre del proyecto será: “WebServiceMysql”

CREATE TABLE `nombres` (


`codigoCliente` varchar(10) NOT NULL,
`nombreCliente` varchar(10) NOT NULL,
PRIMARY KEY (`codigoCliente`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

INSERT INTO `nombres` VALUES ('100', 'daniel');


INSERT INTO `nombres` VALUES ('101', 'juan');
INSERT INTO `nombres` VALUES ('102', 'micaela');
INSERT INTO `nombres` VALUES ('103', 'marcos');

Fig. 03: Definiendo el nombre del Web Service

Fig. 04: Definiendo el Server y versión de JEE

Nota: En este caso no es necesario será un proyecto


Fig. 01: Definiendo la Base de Datos “universitario” JSP Pages

III. Creando el Proyecto para el Web Service

a) Para realizar este Web Service Proveedor con


Base de datos, debe crear un Nuevo Proyecto,
de la categoría Java Web

JSP
Fig. 05: El Web Service se desarrollará en base a JSP Pages

IV. Creando el Web Service

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 1 -


Web Services

a) Para crear un nuevo web service desde el


proyecto, debe hacer clic derecho en el proyecto y
seleccione la opción “web service”

Fig. 06: Adicionando al proyecto un nuevo Web Service

b) A continuación definimos el nombre del Web


Fig. 09: Definido las operaciones del Web Service con sus
Service “WebServiceMYSQL” y el nombre del
respectivos parámetros y tipo de datos
paquete “MisClasesJava”
V. Creando una Clase Java que conecte el Web
Service con MYSQL

a) En el paquete “MisClasesJava”, creamos una


Clase Java con el nombre “conectamysql”

Fig. 10: Selecciona la Nueva Clase Java para el proyecto

Fig. 07: Definiendo el Nombre del WebService y Nombre del


b) La nueva clase que nos permitirá conectar con el
Paquete
gestor de base de datos MYSQL, pertenecerá al
paquete MisClasesJava
c) En la opción Diseño del Web Service, definimos
las operaciones y el tipo de datos de los
atributos.
d) La primera operación se crea con el nombre
“ObtenerNombre” y el parámetro “codigoCliente”

Fig. 11: Asignando Nombre de la clase y paquete que será


alojado

Fig. 08: Definiendo la primera operación del web service y un


parámetro

e) La segunda operación se crea con el nombre


“obtenerID” y el parámetro “nombre”

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 2 -


Web Services

VI. Modificando y Personalizando la Clase


c) Adicione los paquetes necesarios para la conexión
“WebServiceMYSQL”
a la base de datos
a) Originalmente el código de la clase generada por
import java.sql.Connection;
import java.sql.ResultSet; el IDE quedo de la siguiente manera:
import java.sql.Statement;
import java.sql.DriverManager;

d) Copiar el siguiente código:

public Connection getConextion() {


try {
Class.forName("com.mysql.jdbc.Driver");
String url ="jdbc:mysql://localhost:3306/universitario";
return (DriverManager.getConnection(url,"root","uigv"));
} catch (Exception e) {
System.out.println("error"+e.getMessage());
}
return null;
}
public ResultSet Listar(String sql) {
Statement st = null;
ResultSet rs = null;
try {
Connection conn = this.getConextion();
st = conn.createStatement();
rs = st.executeQuery(sql);
} catch (Exception e) {
System.out.println("Error:"+ e.getMessage());
}
return rs; b) Ahora por cada operación se modificará
} invocando la clase “conectamysql”
c) Para empezar debe adicionar el paquete:
e) Finalmente el código de la nueva clase debe
quedar de la siguiente manera: import java.sql.ResultSet;

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 3 -


Web Services

rs1 = objc.Listar("select codigoCliente from nombres where


nombreCliente= '"+nombre + "';");
while (rs1.next()){
codigoCliente = rs1.getString(1);
}
return codigoCliente;

d) Y la primera operación, deberá quedar de la


siguiente manera:

@WebMethod(operationName = "ObtieneNombre")
public String ObtieneNombre(@WebParam(name =
"codigoCliente") Fig. 13: Personalizando y definiendo la segunda operación
String codigoCliente) throws Exception { para recuperar el codigo del usuario
//TODO write your implementation code here:
ResultSet rs = null;
String nombreCliente = null; VII. Testeando el Web Service
conectamysql objc = new conectamysql();
rs = objc.Listar("select nombreCliente from nombres where
codigoCliente= '"+codigoCliente + "';"); a) Primero debe ejecutar el proyecto o seleccionar
while (rs.next()){ la opción “desploy”, para que web service se
nombreCliente = rs.getString(1); pueda testear:
// codigoCliente = rs.getString(2);
}
return nombreCliente;

Fig. 14: Ejecutando o Desplomando el Proyecto

Fig. 12: Personalizando y definiendo la primera operación para b) Para testear el web services con sus respectivas
recuperar el nombre
operaciones, debe hacer ubicarse en el proyecto en
el web services y seleccionar la opción “Test Web
e) La segunda operación deberá quedar de la Service”
siguiente manera:

@WebMethod(operationName = "obtenerID")
public String obtenerID(@WebParam(name = "nombre")
String nombre) throws Exception {
//TODO write your implementation code here:
ResultSet rs1 = null;
String codigoCliente = null;
conectamysql objc = new conectamysql();

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 4 -


Web Services

Fig. 15: Elija la opción Test Web Service Fig. 18: Mostrando resultados recuperados del método
obtenerID
c) Para realizar una prueba al web service debe
seleccionar los datos correspondientes e) Si desea recuperar algún nombre, coloque un
código en la caja de texto.

Fig. 19: Utilizando el método obtienNombre

Fig. 16: Pantalla para realizar pruebas de recuperación de


información

d) Si desea recuperar algún código, coloque un


nombre en la caja de texto.

Fig. 20: Mostrando resultados recuperados del método


obtieneNombre

Complementario: Unidad de Persistencia

Fig. 17: Utilizando el método ObtenerID


Para que la aplicación quede configurada con la conexión a
MYSQL, bastara crear una Unidad de Persistencia entre el
Proyecto y Mysql. Para adicionar esta conexión debe hacer clic
derecho en el proyecto y crear Una Unidad de Persistencia,
previamente debe conectar la Base de datos Correspondiente.

VIII. Creando Proyecto Consumidor para el Web


Service

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 5 -


Web Services

a) Debe crear un proyecto JSP Pages que invoque Fig. 23: Mostrando la recuperación de las dos operaciones
creadas en el proyecto del web service
al Web Service, con el nombre
“ConsumidorClienteMYSQL”
c) Para recuperar el código en el consumidor debe
seleccionar uno de las operaciones y arrastrar a
la pagina JSP

Fig. 21: Proyecto Consumidor que llamará al Web Service

b) A continuación, deberá crear un Web Service Fig. 24: Seleccionando una operación para insertarlo en una
Cliente, deberá hacer clic derecho en el proyecto pagina JSP
y seleccionar Nuevo Web Service Cliente,
finalmente selecciona el botón browse para d) Finalmente modificando el código quedará
localizar el web Service.
<%-- start web service invocation --%><hr/>
<%
try {
misclasesjava.WebServiceMYSQLService service = new
misclasesjava.WebServiceMYSQLService();
misclasesjava.WebServiceMYSQL port =
service.getWebServiceMYSQLPort();
// TODO initialize WS operation arguments here
java.lang.String codigoCliente = "100";
// TODO process result here
java.lang.String result =
port.obtieneNombre(codigoCliente);
out.println("El Nombre es = "+result);
} catch (Exception ex) {
// TODO handle custom exceptions here
}
%>
<%-- end web service invocation --%><hr/>

Fig. 22: Seleccionando el Web Service en el proyecto


Consumidor

e) Del mismo modo para la otra operación


f) Mejore su presentación, implementando un
formulario para la aplicación

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 6 -


Web Services

IXI. Creando Proyecto Consumidor con Fig. 25: Formulario Consumidor


Formulario
b) Se crea el web services client
a) Crear un formulario en jsp

Archivo: buscar.jsp

<%--
Document : BUSCAR
Created on : 05-nov-2010, 18:46:48 Fig. 26: Generación del Web Service Client
Author : fisc
--%>

<%@page contentType="text/html" pageEncoding="UTF-


8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01
Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">

<html>
<head>
<meta http-equiv="Content-Type" content="text/html;
charset=UTF-8">
<title>JSP Page</title>
</head>
<body>
<h1>Formulario Consumidor </h1>
<form name="Test" method="post" action="consumidor">
<p>Ingrese ID:</p>
<p>
<p><input type="text" name="textoconsulta"
ID="textoconsulta"></p>
Fig. 27: Visualizar las operaciones generadas por el Web
<p> Services Proveedor
<p>Ingrese Nombre:</p>
<p>
c) Crear el servlet “consumidor”
<p><input type="text" name="textoconsulta1"
ID="textoconsulta1"></p>
<p>
<input type="submit" value="Consulta "
name="botonconsulta1">
</form>
</body>

</html>

Fig. 28: Creando el Servlet

d) Insertando código al servlet

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 7 -


Web Services

misclasesjava.WebServiceMYSQL port =
service.getWebServiceMYSQLPort();

// TODO initialize WS operation arguments here

java.lang.String nombre = textoconsulta1;

// TODO process result here

java.lang.String result = port.obtenerID(nombre);

out.println("<p>El nombre ingresado


"+textoconsulta1+"corresponde al codigo: "+result);

} catch (Exception ex) {

// TODO handle custom exceptions here


Fig. 29: Llamando a una operación del Web Service
}
e) Insertando código a los servlets

try { // Call Web Service Operation


El resultado final debe mostrar de la siguiente
//Se recupera el datos del formulario y se convierte en cadena manera:

String textoconsulta = request.getParameter("textoconsulta");

//se invoca al web service

misclasesjava.WebServiceMYSQL port =
service.getWebServiceMYSQLPort();

// TODO initialize WS operation arguments here


Fig. 30: Resultado final de la consulta

//se define una nueva variable que guardará el resultado de la


consulta

java.lang.String OBTENERNOMBRE = textoconsulta; X. Creando otros consumidores para el Web


Service Proveedor
// Aqui muestra el resultado
Desarrolle 3 clientes Java, donde muestre el mismo
java.lang.String result = port.obtieneNombre(OBTENERNOMBRE); resultado:
// se muestra el resultado
a) Consumidor 1: En una aplicación JME
out.println("El código ingresado "+textoconsulta+"corresponde al
nombre: "+result); b) Consumidor 2: En una página JSF

} catch (Exception ex) { c) Finalmente proponga la Arquitectura del Web


Service (mediante un gráfico, donde represente todos
// TODO handle custom exceptions here los elementos y componentes de la aplicación)

}
Docente: MSc. Daniel Alejandro Yucra Sotomayor
Lima, Noviembre del 2009
Consultas: [email protected]
try { // Call Web Service Operation

String textoconsulta1 = request.getParameter("textoconsulta1");

MSc. Daniel Alejandro Yucra Sotomayor Pag. - 8 -

También podría gustarte