(Servicio Web Netbeans-java,Glassfish MySQL) - UES

Transcription

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016GUIA DE LABORATORIO N 7A(Servicio Web Netbeans-java,Glassfish MySQL)Objetivo:Crear servicios web utilizando la arquitectura REST, para obtener información desde unservidor web montado localmente con el que se conecta una base de datosMySQL.Requerimientos previos: Instalar WampServer(Version 3 ) Instalar Netbeans 8.1 con plugin para servicios web Restful(Anexo 1) Conocer comandos DDL y DML en MySql. Instalar el addon“RESTClient, a debugger for RESTful web” para Mozilla Firefox

IndiceTabla de contenidoCreación de Base de Datos . 1Primero iniciamos el wampserver. 1Crear la Base de Datos . 2*Parte Opcional . 3Script de Base de datos CARNET . 4Prueba de llaves primarias: . 6Creación de Servicios web(con asistentes) . 81. Añadir GlassFish Versión 4.1.0 . 82. Crear el Proyecto . 113. Conectando a la Base de Datos . 144. Creación de las Clases Entidad . 165. Creación de los servicios web. 216. Probando los servicios web . 24Instalar Plugin de Firefox . 24Obtener los datos de todos los alumnos en XML . 26Obtener los datos de un alumno por medio de su carnet en JSON: . 27Obtener los datos de todas las materias. 28Obtener los datos de una materia por medio de su código; . 28Obtener la nota de un alumno para una materia y ciclo dado: . 28Guardar los datos de un nuevo alumno . 29Guardar los datos de una nueva materia . 32Guardar las notas de un alumno . 33Modificar los datos de un alumno . 34Modificar los datos de una Nota . 35Eliminar los datos de un alumno . 366. Desplegando en un entorno de Producción (en casa y aplicable a la prueba final para suproyecto etapa2) . 37Pruebas de casa. 43

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Guardar tus datos materia en servidor . 43Pruebas en Servidor de EISI. 43Guardar tus datos materia en servidor . 43Casos especiales . 43El archivo my.cnf . 43Añadir un usuario genérico a mysql ‘carnet’. . 44iii

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Creación de Base de DatosPrimero iniciamos el wampserverClic en inicio, y escribe wamp, Wampserver64, si para ejecutarloVea que este el icono en verde, para proseguir, si ve otro color, consulte a su instructor.1

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Presione el icono verde y entre a PhpmyadminCrear la Base de DatosIngrese con usuario: root, Sin passwordEntre a base de datos, póngale nombre a su base como el de su carnet, luego presionecrear.2

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Después buscamos al lado izquierdo la base y presionamos clic sobre ella*Parte OpcionalSi deseamos crear la base de datos a partir de un modelo conceptual podemos utilizar el archivomodelo guia08.cdm y generar archivo físico(MySQL ) y crear Script de Base de Datos.Fin de parte opcional3

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Presionamos clic en SQL e insertamos el script(abajo) en la parte que se indicaScript de Base de datos CARNET/* *//* DBMS name: MySQL 5.0*//* Created on: 31/05/2013 18:04:40*//* */drop table if exists ALUMNO;drop table if exists MATERIA;drop table if exists NOTA;/* *//* Table: ALUMNO*//* */create table ALUMNO(CARNETchar(7) not null,NOMBREvarchar(30) not null,APELLIDOvarchar(30) not null,SEXOchar(1) not null,MATGANADASint,primary key (CARNET)) ENGINE InnoDB;/* */4

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016/* Table: MATERIA*//* */create table MATERIA(CODMATERIAchar(6) not null,NOMMATERIAvarchar(30) not null,UNIDADESVALchar(1) not null,primary key (CODMATERIA)) ENGINE InnoDB;/* *//* Table: NOTA*//* */create table NOTA(CODMATERIAchar(6) not null,CARNETchar(7) not null,CICLOchar(6) not null,NOTAFINALfloat,primary key (CODMATERIA, CARNET, CICLO)) ENGINE InnoDB;alter table NOTA add constraint FK POSEE foreign key (CODMATERIA)references MATERIA (CODMATERIA) on delete restrict on update restrict;alter table NOTA add constraint FK TIENE foreign key (CARNET)references ALUMNO (CARNET) on delete restrict on update restrict;Luego presionamos continuar (lo importante es que se una tabla que maneje un motor dealmacenamiento InnoDB pore so tiene la opción “ENGINE InnoDB;” en la tabla).5

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Ahora actualice la página (F5 o clic derecho recargar) para ver sus tablas.Prueba de llaves primarias:(Probamos una por una la ejecución de las líneas de comando en cada tabla(SQL). Laprimera línea se debe ejecutar correctamente y la segunda debe generar error)En AlumnoINSERT INTO ALUMNO VALUES ('NN00001','Nuevo','Nuevo','M',0);INSERT INTO ALUMNO VALUES ('NN00001','Nuevo','Nuevo','M',0);En MateriaINSERT INTO MATERIA VALUES('MAT115','MATEMATICAS I',4);INSERT INTO MATERIA VALUES('MAT115','MATEMATICAS I',4);En NotaINSERT INTO NOTA VALUES('MAT115', 'NN00001','1',2);INSERT INTO NOTA VALUES('MAT115','NN00001','1',2);6

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-20161) Verificamos en la tabla nota. Que existe la integridad Referencial(Clic en tabla NOTAS, clicen Estructura y clic en vista relaciones)Veremos que efectivamente están activadas las restricciones de Foreign Key para modalidadRESTRICT en OPERACIÓN UPDATE Y DELETE.Aunque no aparezca, Las restricciones anteriores son válidas para INSERT.2) Probar integridad referencial de nota con las tablas Materia y AlumnoProbamos la integridad referencial (con un carnet que no tiene referencia en la tabla alumno)INSERT INTO NOTA VALUES('MAT115', 'NN00002','1',2);Probamos la integridad referencial (con un codmateria que no tiene referencia en la tabla materia)INSERT INTO NOTA VALUES('MAT215', 'NN00001','1',2);7

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Creación de Servicios web(con asistentes)1. Añadir GlassFish Versión 4.1.0Si existe GlassFish Server 4.1.0 pueden ir al paso 2, si no hay que agregar esta versión de GlassFishServer 4.1.0.Como primer paso si no tenemos instalado el GlassFish 4.1.0 debemos instalarlo, debido aque netbeans trae el GlassFish 4.1.1 pero este tiene un bug, así que aquí estos son los pasospara instalar.Se selecciona Services, después en Servers click derecho Add Server Luego en Server seleccionamos GlassFish Server, en Name escribimos “GlassFish Server4.1.0” y click en Next.8

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Activamos el checkbox, y damos click en Download Now Seleccionamos GlassFish Server 4.1 y damos click en Aceptar, y comenzara a descargar laversión de GlassFish 4.1.0.9

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Después de descargar se de click en Next.Escribimos User Name “admin” y damos click en finalizar.10

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-20162. Crear el ProyectoComo siguiente paso ejecutamos NetBeans IDE y dentro del menú “File” seleccionamos“New Project”, “Java Web”, “Web Application” y presionamos el botón “Siguiente”:11

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016En la siguiente ventana establecemos el nombre(CarnetWebApplicationDB) y la ubicacióndel proyecto, luego presionamos el botón “Siguiente”:Continuamos sin alterar las configuraciones del Servidor y versión de javaEE. PresioneSiguiente.12

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Por último podemos seleccionar un Framework, para nuestro caso dentro del desarrollo deesta guía no aplica, por lo tanto presionamos el botón “Terminar”Una vez creado tendremos la siguiente estructura dentro de la vista de Proyectos:13

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-20163. Conectando a la Base de DatosAhora crearemos la conexión a nuestra base de datos CARNET en MySQL, dentro delpanel del proyecto iremos a la pestaña “Services” y al hacer click derecho sobre“Databases” seleccionamos “New Connection”Se desplegará un asistente para la nueva conexión, en la opción “Driver” seleccionamos enla lista la opción “MySQL (Connector/J driver)”14

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Una vez seleccionado MySQL presionamos sobre el botón “Siguiente”:En la siguiente ventana establecemos los valores para la conexión a la Base de Datos, elnombre, usuario y password. Para comprobar que los valores son correctos presionamos elbotón “Test Connection”, una vez correcta la conexión presionamos sobre el botón “Finish”15

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Una vez creada la conexión se puede visualizar dentro de la pestaña “Service”4. Creación de las Clases EntidadAhora dentro de la pestaña “Projects” crearemos dos paquetes, el primero llamado“sv.ues.fia.carnet.entidad” contendrá las clases entidad generadas de nuestra base de datos,el segundo “sv.ues.fia.carnet.servicio” tendrá las clases que contienen los servicios web.Para ello hacemos click derecho sobre “SourcePackages” “New” “Java Package”16

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Establecemos el nombre “sv.ues.fia.carnet.entidad” y presionamos el botón “Finish”,repetimos este procedimiento para crear el otro paquete.Ahora hacemos click derecho sobre el paquete “sv.ues.fia.carnet.entidad” y buscamos laopción “New” “Clases entidad a partir de bases de datos”17

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Después de seleccionar “Clases entidad a partir de bases de datos” se muestra la siguienteventana donde debemos indicar la conexión que corresponde a nuestra Base de Datos, en laopción “Fuente de Datos” seleccionamos “New Data Source”En el siguiente cuadro colocamos Carnet en la opción “JNDI Name”, y en “DatabaseConnection” deberá aparecernos la que fue creada con anterioridad, la seleccionamos ypresionamos el botón “OK”18

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Una vez realizado podemos observar que aparecerán las tablas de nuestra base,presionamos el botón “Add All” para crear las clases de todas las tablasLuego presionamos el botón “Next”19

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016En la siguiente ventana verificamos que el paquete que contendrá nuestras clases sea“sv.ues.fia.carnet.entidad”, y estén seleccionadas solamente las opciones que muestra laimagen, luego presionamos el botón “Next”.Por último especificamos las opciones del mapeo de entidades, en la opción“AssociationFetch” seleccionamos “lazy” y en “CollectionType” seleccionamos“java.util.List” y las demás opciones tal como muestra la imagen. Para finalizarpresionamos el botón “Finish”20

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Una vez completado podemos observar las Clases creadas dentro de nuestro paquete, comose puede observar cada una representa la abstracción de la correspondiente tabla con suscampos, la clase NotaPK es generada ya que la llave primaria de nuestra tabla Nota estácompuesta por 3 campos (Carnet, CodMateria y Ciclo), y es necesario englobar dicha llaveprimaria en un solo objeto que contenga dichos campos.5. Creación de los servicios webAhora crearemos las clases controladoras que implementan los servicios web, para elloseleccionamos nuestro paquete “sv.ues.fia.carnet.servicio” y hacemos click derecho, luegobuscamos la opción “New” “RESTful Web ServicesfromEntityClasses”21

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Presionamos “Next” y nos mostrará la siguiente ventana donde se muestras las clasesentidad disponibles, presionamos el botón “Add All” para generar los servicios de todas lasclasesLuego presionamos el botón “Next”En la siguiente ventana verificamos que nuestros servicios sean creados en el paqueteespecificado “sv.ues.fia.carnet.servicio.service”, para finalizar presionamos el botón“Finish”.22

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Una vez creados los servicios web podemos observar las clases controladoras dentro de lavista del proyecto.23

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-20166. Probando los servicios webHasta este punto ya tenemos todo listo para probar los servicios web, para ello primero esnecesario desplegar la aplicación dentro del servidor, para ello seleccionamos el proyectohaciendo click derecho sobre él y buscando la opción “Deploy”Esperamos mientras carga el servidor GlassFish y se despliegan los servicios, podemosconsultar la consola del servidor para verificar el correcto despliegue:Instalar Plugin de FirefoxPara verificar el funcionamiento de los servicios web podemos acceder desde un navegadora las URL que se presentan para cada caso, con esto obtendremos los datos en formatoXML, sin embargo existen herramientas especiales que nos permiten una mejor depuraciónpara este tipo de servicios, en esta guiá se utiliza la extensión para el navegador Firefoxllamada “REST Client” lient/versions/) Seinstala la Versión 2.0.5, esta herramienta también nos permite establecer otras opciones depetición de datos a los servicios web, como por ejemplo en lugar de obtener los datos enformato XML los podemos obtener en formato JSON.El ApplicatonPath de los servicios se especifica mediante el archivo de configuración24

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016ApplicationConfig.java tal como muestra las siguientes imágenes:Y para cada controlador de servicios se especifica su dirección mediante la anotación@Path como se muestra en la imagen:A continuación se presenta un conjunto de operaciones como ejemplo:25

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Obtener los datos de todos los alumnos en XMLCargamos el Firefox y entramos al plugin que acabamos de instalarEntramos los parámetros:Método: sionamos el botón “SEND”Veremos primeramente la cabecera de la respuestaPrimero podemos observar la cabecera de la respuesta (Response) HTTP, para los datosobtenidos accedemos a la pestaña “Respone Body (Highlight)”.26

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Obtener los datos de un alumno por medio de su carnet en JSON:Para obtener los datos en formato JSON es necesario especificarlo dentro de la cabecera dela petición HTTP:Cambie los parámetros:Método: 00001En la parte final de la URL especificamos el carnet del alumno que deseamos obtener susdatos, de manera que nuestra petición (Request) queda de la siguiente manera:27

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Al ejecutar la petición obtenemos el Response con los siguientes datos:De la misma manera ejecutamos las siguientes pruebas con las URL's indicadas:Obtener los datos de todas las materiasMétodo: tener los datos de una materia por medio de su código;Método: AT115En la parte final de la URL especificamos el código de la materia que deseamos obtener susdatos.Obtener la nota de un alumno para una materia y ciclo dado:Método: arnet NN00001;codmateria MAT115;ciclo 1En la parte final de la URL especificamos los tres valores necesarios para obtener la nota deun alumno, su carnet, código de materia y el ciclo en que la curso.28

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Guardar los datos de un nuevo alumnoComo primer paso modificaremos el método que recibe la petición POST (create) de laclase AlumnoFacadeREST para que nos devuelva una respuesta favorable si la inserción serealizó de manera correcta.Es necesario renombrar el método create ya que es la clase hereda de AbstractFacade y estáya contiene dicho método create pero sin retornar valores.Verificar que el import necesario para la clase Response sea el siguiente:Guardamos el proyecto y desplegamos nuevamente la aplicación.Para almacenar datos desde un servicio web es necesario realizar una petición POST, lacual debe contener los datos del nuevo alumno ya sea en formato XML o JSON, acontinuación se presenta ejemplos utilizando el formato JSON.29

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Método: n la petición se creara un nuevo encabezado HTTP con la opción Content-type:application/jsonColocamos dentro del cuerpo de la petición los datos del alumno en formato JSON, al finalnuestra petición quedará de la siguiente lido":"perez","sexo":"M","matganadas":0}30

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Presionamos sobre el botón SEND y obtenemos la respuesta del servidor, en este caso elalumno se guardó correctamenteSi el servidor encuentra algún error al momento de guardar el alumno, como por ejemplouna duplicación de carnet, el resultado sería como el siguiente:De la misma forma se puede implementar para Materia y Nota sus correspondientesmétodos POST.31

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Guardar los datos de una nueva materiaMétodo: "codmateria":"PDM115","nommateria":"Programacion para DM","unidadesval": “8”}Con esta petición se crea una nueva materia en la base de datos del servidor, se puedenmodificar el resto de métodos para que devuelvan un código de estado 200 (que significaOK) si la inserción se realiza de manera correcta, tal como se hizo con la petición POSTpara alumnos. Si no se modifica, la respuesta por defecto del servidor es la siguiente:32

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Guardar las notas de un alumnoMétodo: ciclo":"1"},"notafinal":"8"}33

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Modificar los datos de un alumnoLa modificación de registros existentes se realizan mediante peticiones PUT al servidorweb, para ello dentro del contenido de la petición es necesario colocar los datos del alumnoa modificar, para este ejemplo se cambió el email del alumno con carnet NN00001.Método: PUTRealice los cambios de Response a todos los métodos PUT(tablas alumno, materia y do":"perez3","sexo":"X","matganadas":0}34

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Modificar los datos de una NotaLa nota se cambiara de 8 a 6.Método: arnet NN00001;codmateria PDM115;ciclo 5","ciclo":"1"},"notafinal":"6"}35

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016Eliminar los datos de un alumnoMétodo: DELETERealice los cambios de Response a todos los métodos DELETE(tablas alumno, materia ynota solo que sin cambiar los nombres de método ya que no hay umno/NN00002En la parte final de la URL especificamos el carnet del alumno que deseamos eliminar susdatos, para este ejemplo eliminaremos el alumno recién creado con carnet NN00002 ya queno contiene ningún registro de notas y no viola la integridad referencial.De igual manera se puede proceder a la eliminación de registros de materias y notas peroteniendo en consideración las implicaciones de dicha eliminación.Cuando finalice la práctica solo envié el*El archivo comprimido del proyecto netbeans depractica 6b Proyecto.rarSi tiene demasiados problemas con su proyecto, tome de referencia el que esta subido por lacoordinación solo que en las pruebas deberá cambiar el nombre por CarnetWebApplicationBD36

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-20166. Desplegando en un entorno de Producción (en casa y aplicablea la prueba final para su proyecto etapa2)Si queremos desplegar los servicios web en una instalación de GlassFish independiente deNetBeans(descargar e instalar) es necesario compilar y generar el archivo .war, para ellohacemos click derecho sobre el proyecto y seleccionamos “Clean and Build” (es importanteque el servidor GlassFish que utiliza NetBeans se encuentre apagado).Esto nos genera el archivo CarnetWebApplicationDB.war dentro de la carpeta del Proyecto. \CarnetWebApplicationDB\dist\37

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo C:\Users\PDM115\GlassFish Server\glassfish\domains\domain1\lib) es necesario copiarel conector jdbc (mysql-connector-java-5.1.23-bin) para MySQL . (Puede revisar la partede la instalación de GassFish 4.1.0 para Windows).Con esto iniciamos la instancia del dominio de GlassFish y accedemos a la consola deadministración en http://localhost:4848Como primer paso debemos establecer la configuración a la Base de Datos, para elloaccedemos la opción “JDBC” “JDBC Conection Pools” y presionamos el botón “New”38

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA DE SISTEMAS INFORMATICOSPROGRAMACION PARA DISPOSITIVOS MOVILESPDM115Ciclo I-2016En la siguiente pantalla introducimos el nombre del pool “CarnetPool” y los valores talcomo muestra la imagen, luego presionamos el botón “Next”A continuación se muestra la configuración general de la conexión:En la parte de abajo de esta pantalla se muestran varias propiedades adicionales para laconexión, pero solo se deben buscar y establecer las siguientes:39

UNIVERSIDAD DE EL SALVADORFACULTAD DE INGENIERIA Y ARQUITECTURAESCUELA DE INGENIERIA

Crear servicios web utilizando la arquitectura REST, para obtener información desde un . (Probamos una por una la ejecución de las líneas de comando en cada tabla(SQL). La primera línea se debe ejecutar correctamente y la segunda debe generar error) . Luego en Server seleccionamos GlassFish Server, en Name escribimos "GlassFish Server