Vous êtes sur la page 1sur 78

CURSO

Programacin para Web 2 con Eclipse Java EE

Por Ing. Guillermo Medrano Email: guichi95@gmail.com Celular: 709 09 065

Tabla de Contenido 1.1. 1.2. 1.3. 1.4. 1.5. Informtica distribuida, computacin distribuida. ............................................ 4 Comunicacin sncrona (RMI) y asncrona (mensaje XML en HTTP) ............ 5 El Internet Orientado a los Servicios ................................................................... 5 Arquitectura Orientada a Servicios SOA. ........................................................... 5 Arquitectura Empresarial de Java (J2EE -> JEE) ............................................. 5
Modelo de Desarrollo. ................................................................................................6

1.5.1.

1.6. 1.7.

Servicio Web ........................................................................................................... 6 Estndar Abierto XML ......................................................................................... 7


Conjunto de especificaciones .....................................................................................7 Interaccin de las tecnologas ....................................................................................7

1.7.1. 1.7.2.

1.8. 1.9.

Arquitectura de pilas de servicios web (SOAP-WSDL-UDDI) ......................... 8 Framework de Servicios Web JBoss Web Services (pila de aplicaciones) ....... 8

1.10. Modelo de servicios web de IBM .......................................................................... 9 1.11. Fundamentos de programacin Programacin Orientada a Objetos Programacin basada en patrones de diseo - Programacin sobre arquitectura del marco de trabajo Programacin de servicios web. ..................................................... 9 2.1. 2.2. 2.3. 2.4. 2.5. 2.6. 3.1. 3.2. 3.3. 3.4. La Iniciativa de Pasarela de Servicios Abierto (OSGi). ................................... 11 Especificacin del framework OSGi. ................................................................. 12 Bundle ................................................................................................................... 12 Eclipse-IBM .......................................................................................................... 12 Control de Inversin ............................................................................................ 13 Hot Spots ............................................................................................................... 13 Decisin del framewrok para el ERP. ................................................................ 14 JBoss Seam ........................................................................................................... 14 Caso de Implementacin ..................................................................................... 15 Evaluacin del framework .................................................................................. 15
Complejidad tecnolgica ..........................................................................................15 Facilidad de exponer el servicio ................................................................................15 Facilidad de administracin ......................................................................................15 Utilizacin de recursos ..............................................................................................16

3.4.1. 3.4.2. 3.4.3. 3.4.4.

3.4.5. 3.4.6. 3.4.7.

Facilidad de implementacin de la presentacin .....................................................16 Facilidad de implementacin de la lgica del negocio ..............................................16 Facilidad de la administracin de la base de datos ...................................................16

3.5. 3.6. 4.1. 4.2. 4.3. 4.4. 5.1.

Evaluacin como ERP-framework ..................................................................... 16 Conclusin ............................................................................................................ 17 JBoss Application Server .................................................................................... 18 La tecnologa JBoss Seam ................................................................................... 19 Crear proyecto con Seam-Gen -> CRUD ......................................................... 20 Seam new-project ................................................................................................. 22 Etapa de instalacin inicial ................................................................................. 24

Descomprimir, instalar y/o renombrar los archivos bajados de las anteriores URLs mismas que contienen en el DVD, los archivos deberan quedar: .............................. 24 5.2. Etapa instalacin MySql ..................................................................................... 25

CAPITULO

1
Modelo de programacin Web
En el presente apartado primero vemos el surgimiento de la informtica distribuida, luego los tipos de comunicacin basada en mensaje sncrono y asncrono, la cualidad del Internet orientado a servicios y arquitectura SOA.

1.1. Informtica distribuida, computacin distribuida.


En tiempos lejanos las mquinas que dominaban el mundo eran los grandes computadores, aos ms adelante el computador personal PC desde donde el usuario poda ejecutar sus propias aplicaciones; hasta ah los protocolos de red no ocupaban un espacio demasiado importante para los desarrolladores. A principios de los 90, iniciativas dentro del Grupo de Gestin de Objetos OMG surge COM de Microsoft y CORBA como modelos o arquitecturas diseadas para la escritura y encapsulacin del cdigo binario, componentes que los programadores podran invocar desde cualquier aplicacin, no obstante no eran interoperables. Surgen la era de las redes local y los protocolos como CORBA/IIOP, DCOM y RMI.

1.2.

Comunicacin sncrona (RMI) y asncrona (mensaje XML en HTTP)

Los protocolos DCOM y RMI estn orientados al modelo de interaccin peticin/respuesta; es decir trabajan de forma sincrnica; por tanto, no permiten un intercambio de mensajes de sentido nico o unidireccional. Por otro lado, Java Message Service JMS que permite utilizar colas de mensajes, como el modelo de publicacin y suscripcin. Microsoft Message Queuing MSMQ se caracteriza por su completa funcionalidad, en ambos casos las aplicaciones se encuentran en una misma red local.

1.3.

El Internet Orientado a los Servicios

La aparicin de Internet con la Web, la red creci y se volvi extremadamente distribuida y descentralizada, adelantando la decisin sobre qu sistemas operativos o entorno de programacin/lenguaje, se ejecutara los diversos ordenadores conectados a Internet.

1.4.

Arquitectura Orientada a Servicios SOA.

Las arquitecturas de servicios prometen implementar aplicaciones compuestas que ofrezcan transparencia en la localizacin y segregacin de la lgica de negocio. La transparencia de localizacin permite a los consumidores y proveedores de servicios intercambiar mensajes sin referenciar a una u otra localizacin concreta. La segregacin solapada de lgica del negocio es el ncleo del proceso de otro proveedor de servicio y consumidor. Juntos, estas caractersticas le permiten reemplazar o actualizar componentes individuales en una aplicacin compuesta sin afectar otros componentes o el proceso como un todo. Sin embargo, se puede independientemente especificar el camino alternativo a travs el cual varias partes de la aplicacin compuesta intercambien mensajes.

1.5.

Arquitectura Empresarial de Java (J2EE -> JEE)

J2EE es la versin previa a JEE como plataforma de desarrollo encabezado por Sun Microsystems con una coleccin de patrones. Java EE 5 o JEE creada en 1997 por Sun Microsystems soporta mltiples sistemas como Windows, Unix, Linux y Solaris con la instancia Java Virtual Machine JVM, de desarrollan 5

en torno a un organismo de control JCP en el cual estn afiliadas SAP, ORACLE, SUN, IBM, Motorola entre otros. Apunta a la competitividad como solucin libre y madura. Una arquitectura empresarial podra verse como el estudio de sistemas empresariales complejos desde el punto de vista de su estructura, como lo seala IEEE-1417-FAQ No estamos seguros, pero la reconocemos cuando vemos una. Abarca un conjunto de especificaciones.

1.5.1. Modelo de Desarrollo.


JEE define una arquitectura de implementacin de servicios, donde el modelo puede tener n-capas: Bases de datos, sistemas legados (ERP, CRM), Capa negocio, capa web, capa de cliente, como se muestra en los enlaces en la siguiente figura.

1.6.

Servicio Web

Un servicio web es una aplicacin modular auto descriptivo que se puede publicar, ubicar e invocar desde cualquier lugar de la Web o red local. No es necesario que el proveedor y el usuario del servicio web XML tengan en cuenta el sistema operativo, el entorno del lenguaje, el modelo de componentes utilizados en la creacin y acceso al Servicio Web XML, ya que se basan en estndares omnipresentes de Internet, como XML, HTTP y SMTP. 6

Simple Object Access Protocol SOAP es un protocolo sencillo y extensible para la comunicacin de ordenador a ordenador, que emplea por igual los estndares actuales de Internet: XML para el formato de mensajes, http y otros protocolos de Internet para el transporte de mensajes. XML y SOAP son las tecnologas base de los servicios Web.

1.7.

Estndar Abierto XML

El lenguaje de definicin de lenguajes de marcado es como un metalenguaje, define lenguajes de marcado por medio de DTDs (Document Type Definition) y es estandarizado por el w3c (Recommendation 10-Feb- 1998).

1.7.1. Conjunto de especificaciones


XML (Estructura de los datos) XSL = XSLT + XSL-FOs + XPath (Hojas estilo) XLL = XLink + XPointer +Xpath (Hiperenlaces)

1.7.2. Interaccin de las tecnologas


XML: Intercambio de Informacin XML+XSL: Formato de publicacin XML+XSL+XLL: Navegacin XML+XSL+XLL+ script: DXML (aplicacin)

1.8. Arquitectura de pilas de servicios web (SOAP-WSDL-UDDI)


Consta de tres bloques: ubicacin, descripcin y llamada, donde cada bloque consta de una serie de capas que encajan entre s.

(Grafico: Mensaje/Cable (Invocacin) Transporte Descripcin (Significado) Descubrimiento)

1.9. Framework de Servicios Web JBoss Web Services (pila de aplicaciones)


Seam integrado con JBossWS permite al estndar JEE Web Services tomar ventaja total de del framework contextual de Seam. Incluyendo soporte para servicios Web conversacionales. Para permitir a Seam a interceptor requerimientos de Web services para los contextos necesarios que pueden ser creados por el requerimiento, un manejador SOAP especial deber ser configurado, dicha implementacin deber trabajar gestionando el ciclo de vida durante el mbito del requerimiento del Servicio Web. Para la propagacin de las conversaciones entre request de los servicios Web, Seam emplea un elemento de cabecera usando SOAP presente en ambos request SOAP y respuestas de mensajes para acarrear el ID de conversacin desde el consumidor hacia el servicio, y vuelta atrs. Como un servicio Web debe estar implementado en otros session bean sin estado o POJO, es recomendable que la conversacin de servicios Web, el servicio web actu como una fachada hacia el componente conversacional Seam

1.10. Modelo de servicios web de IBM


Los productos de servicios web de IBM, se basan en el modelo:

El proveedor del servicio, implanta la lgica empresarial que va a enviarse y anuncia su existencia publicando informacin con el registro del servicio. El solicitante de servicio deseara emplear los servicios del Proveedor de Servicio, por lo que consulta el Registro del Servicio para encontrar un proveedor adecuado. Una vez equipado con la informacin del Registro del Servicio, el solicitante de servicio puede encontrar al Proveedor del Servicio y aprender acerca de su interfaz. Esta informacin es suficiente para que el solicitante contacte con el Proveedor del Servicio y as pueda utilizar los servicios que ofrece. Este modelo es una excelente representacin de un web service, y explora la caracterstica ms valiosa de stos: los componentes eran empaquetados de forma poco rgida, simplificando la inevitable adaptacin del sistema a los nuevos requisitos, algo que resulta tan comn en el mundo empresarial de hoy en da.

1.11. Fundamentos de programacin Programacin Orientada a Objetos Programacin basada en patrones de diseo Programacin sobre arquitectura del marco de trabajo Programacin de servicios web.
En el modelo de programacin orientado a mquina estn los lenguajes como Assembler, luego evolucionan los lenguajes sin estructura del tipo GOTO, ms adelante surgen las estructuras de control con la programacin estructurada que hereda el problema con un alto 9

acoplamiento, surge la programacin modular con el uso de las subrutinas y paso de parmetros pero en la medida que creca el cdigo y ante la necesidad de extenderlo sea hacia trabajo adicional no productivo, surgen la programacin OO que fomenta la reutilizacin del cdigo, pero luego la experiencia de las comunidades de programadores surgen modeles a las soluciones generales para una serie de problemas similares o la programacin basada en patrones de diseo que en definitiva cambian y entregan el control de ejecucin del programa a los marcos de trabajo construidos ya no pensados en el diseo de bajo nivel sino mas bien en la arquitectura como las orientadas a servicios que la Web nos brinda.

10

CAPITULO

2
Estndar abierto XML y rol de la OSGi
2.1. La Iniciativa de Pasarela de Servicios Abierto (OSGi).
Open Services Gateway Initiative (OSGi) es una organizacin internacional que define y promueve especificaciones abiertas, deliberando y gestionando las especificaciones para entornos en red. El elemento clave de la iniciativa es el framework OSGi; el cual es un framework liviano y delgado para su despliegue y ejecucin de aplicaciones orientadas a servicios. Debido a estas caractersticas el framework OSGi est cobrando gran inters creciente en su aplicacin para dispositivos: consumidor y no consumidor, de reas de dominio especficas; esto es desarrollo de software orientado a servicios.

11

2.2. Especificacin del framework OSGi.


La especificacin del framework OSGi define los servicios del framework al incluir: Modelo de componentes mnimo, Gestin de servicios para los componentes, Registro de servicios. Los servicios son paquetes, donde sus implementaciones estn asociadas a bundles.

2.3.

Bundle

Es un archivo Java Archive Runtime JAR, que contiene un manifiesto y una combinacin de archivos de clases Java en cdigo nativo y recursos asociados. El manifiesto de un archivo JAR bundle contiene metadatos descriptivos, entre otras cosas, los paquetes Java que el bundle requiere o provee. Los estados del ciclo de vida un bundle como se presenta en el siguiente diagrama a los mecanismos de gestin que el framework provee para: instalacin, activacin, desactivacin, actualizacin y eliminacin de bundles.

2.4.

Eclipse-IBM

El proyecto Eclipse es un entorno de desarrollo integrado IDE de plugin-centralizado y modular encabezado por IBM, el IDE est experimentando en el uso de OSGi como una 12

mecanismo de plug-in dinmico; la experimentacin est tomando mayor espacio con los sub-proyectos: Seam y Web Beans.

2.5.

Control de Inversin

Cuando el control del flujo de ejecucin del programa reside o es tarea fundamental del framework y no en las aplicaciones; por ejemplo el caso de Bijeccion.

2.6. Hot Spots


Mide el comportamiento cambiante de una clase genrica.

13

CAPITULO

3
Evaluacin tcnica del Framework
3.1. Decisin del framewrok para el ERP.
Los sistemas de gestin empresarial computarizada o software ERP dejan muchos beneficios a una organizacin. Las pequeas empresas es caro pagar el costo del producto. La otra opcin es soluciones libres o abiertas. Se tiene como opciones un enorme arreglo de diferentes vendedores, una de las decisiones ms difciles radica; Cul software framework ERP open source o libre adoptar?, en nuestro caso nos centraremos en JBoss y el modelo integrado de programacin de de aplicaciones empresarial; JBoss Seam.

3.2.

JBoss Seam

Como el ms popular framework de desarrollo empresarial de software basado sobre Java EE, combina Java Server Faces JSF, Enterprise JavaBeans EJB 3.0 integra con la tecnologa de mapeo de objetos relacionales de Hibernate, integra con AJAX y otros como capa de seguridad y para la lgica de negocios.

14

3.3.

Caso de Implementacin

Consiste en una demo con los siguientes requerimientos de funcionalidad: 1) Web service para gestin de productos. 2) Web service para gestin de clientes. 3) Web Service para consultar saldos de Cliente: a)Simple saldo, b) Kardex de cliente 4) Web Service para realizar una compra de productos( Cant, Cod. descripcin, Punit, Importe) - 1 sola moneda (por decir en bs) al estilo de SICAM. Se deber poder elegir varios productos en un solo comprobante. 6) Web services para reportes productos 7) Web services para reportes saldos clientes 8) Gestin de usuarios

3.4. Evaluacin del framework


3.4.1. Complejidad tecnolgica
La tecnologa aplicada para la creacin de aplicaciones sobre el framework es fcil de comprender? Resp.- Encontramos que JBoss Seam requiere desarrolladores que entiendan con claridad la tecnologa Java EE, adems el desarrollador debe tener destrezas en JFS, EJB3 y JPA.

3.4.2. Facilidad de exponer el servicio


Cules son los pasos necesarios para exponer un servicio web sobre el framework? Resp.- En Seam para exportar existen los mtodos de session beans como operaciones de web services, los desarrolladores deben crear una interfaz Java separada declarando los mtodos que est debera estar exportando con el aadido de las dos anotaciones: @Remote, @WebService(name=,serviceName=). Seam crea automticamente la especificacin WSDL apropiada. Las interfaces remotas y locales para la misma lgica de negocio.

3.4.3. Facilidad de administracin


Es la instalacin y despliegue de la aplicacin simple?

15

Resp.- JBoss Seam requiere SDK (JDK+JRE), una instalacin separada del servidor de aplicacin y algunas modificaciones al servidor de Seam para que este cargado y luego estar listo para ser corrido.

3.4.4. Utilizacin de recursos


Son el espacio en disco y memoria requerimientos razonables? Resp.- En el instalador estndar, Seam corre sobre JBoss AS, el cual provee soporte completo EJB3, la instalacin requiere 335.2 MB de espacio en disco y 85808 KB de RAM en runtime.

3.4.5. Facilidad de implementacin de la presentacin


Los patrones de la capa de presentacin son flexibles y fciles de utilizar? Resp.- Seam utiliza el patrn de interaccin MVC para la capa de presentacin, los desarrolladores deben estar familiarizados con JSF y EJB para implementar los componentes de la capa de presentacin.

3.4.6. Facilidad de implementacin de la lgica del negocio


Es fcil el desarrollo y modificacin de la lgica de negocios? Resp.- Seam requiere codificacin manual para realizar las tareas relacionadas con los servicios de la lgica de negocios.

3.4.7. Facilidad de la administracin de la base de datos


Es fcil de habilitar y cambiar la configuracin de la base de datos? Resp.- JBoss Seam provee varios medios para conectar con cada diferente gestor de base de datos. Cambiar de base de datos es un tema simple de modificar el archivo de configuracin en el punto del correcto datasource.

3.5. Evaluacin como ERP-framework


3.5.1. Disponibilidad. JBoss requiere reseteo frecuentemente, por ejemplo cuando queremos desplegar nuevas versiones de un cdigo.

3.5.2. Personalizacin.
Los desarrolladores solo necesitan cambiar una especificacin XML para conectar con el punto final del servicio a diferentes componentes. 16

3.5.3. Modificabilidad.
Est disponible para desarrolladores y depende de las destrezas de los desarrolladores.

3.5.4. Integracin.
JBoss tiene especiales caractersticas jBPM y otros para servicios de lgica de negocios. 3.5.5. Flexibilidad. Contiene muchos gestores y herramientas de soporte para tareas como, desarrollo de interfaces de usuarios, exposicin de web services y setup de bases de datos, ocupa como lenguaje scripting Java Server Pages.

3.6. Conclusin
Esperamos que la complejidad Seam debiera eventualmente proveer beneficios directos al tamao del sistema y el crecimiento de la complejidad.

17

CAPITULO

4
Herramientas de desarrollo
En este apartado presentamos conceptos fundamentales de la tecnologa aplicada a los proyectos, contenidos en los programas: JBoss AS, JBoss Seam, RichFaces.

4.1. JBoss Application Server


JBoss Tools es una suite de plugins para Eclipse. En el diagrama muestra aquellos plugins que comprende JBoos Tools y como ellos estn relacionados con los otros.

18

Es posible instalar plug-ins dentro de la suite JBoss Tools; como plug-ins dedicados o permanentes. Sin embargo, las dependencias entre plug-ins Ud. debern personalizarlas. Estas dependencias las mostramos en el diagrama arriba. Los archivos para cada plug-in dedicado estn disponibles en la pgina de download de JBoss Tools.

4.2. La tecnologa JBoss Seam


JBoss Seam es una aplicacin web framework desarrollando por JBoss, una divisin de Red Hat. El proyecto fue dirigido por Gavin King, quien tambin fue el iniciador clave del framework mapeador de Objetos Relacionales Hibernate. JBoss Seam combina los frameworks: Enterprise JavaBeans (EJB3) y JavaServer Faces (JSF). Se puede fcilmente acceder a cualquier componente EJB back-end desde el frontend direccionado por el nombre del componente Seam. JBoss introduce el concepto de bijection, tomando de las dependencia de Spring injection caractersticas donde los objetos pueden se in-jected o out-jected de/a variables asignadas usando las anotaciones @In y @Out. Seam tambin expande el concepto de contextos. Cada componente Seam existe en un contexto. El contexto Seam por defecto es la conversacin. Una conversacin puede palmar mltiples pginas y usualmente palmos de completos flujos de negocios, del inicio hasta el final. El contexto de sesin captura todas las acciones de un usuario hasta los fuera de conexin o cierre del browser en cada uso mltiples del botn-back del browser. Con JBoss Seam se puede generar automticamente una aplicacin Web CRUD (createread-update-delete) desde una base de datos existente usando la herramienta en lnea de comando seam-gem, el cual es provedo con el framework. El JBoss Seam WYSIWYG de desarrollo facilita a travs del uso de las herramientas de JBoss, un conjunto de plug-ins diseados por el Open Source entorno de desarrollo integrado Eclipse. Seam integra fuera de su caja, con JBoss RichFaces y libreras AJAX ICEsoft ICEFaces sin necesidad para escribir en cdigo simple en Javascript. Seam tambin viene con un assert enriquecidos para caractersticas como creador de documentos PDF, emailing, creacin de grficos y creacin de hojas de clculos de Microsoft Excel.

19

4.3.

Crear proyecto con Seam-Gen -> CRUD

Abrimos el proyecto de JBoss y nos vamos a la carpeta /seam-gen/ y arrastramos el built.xml dentro de Ant, una vez hecho esto desplegamos y le damos a reset, luego a setup y se nos abrir una ventana donde vamos a introducir: Introducir workspace Introducir direccin del servidor JBoss Introducir nombre del proyecto Color de la paleta EAR (para el uso EJB) Nombre del paquete del proyexto Nombre del paquete del UI Nombre del paquete de los test TipoBase de Datos (se recomienda hsql por su facilidad de uso) Nombre del directorio de la base de datos Librera de la base de datos Conexin con la base de datos (defecto) Ruta URL donde se conecte la Base de Datos Nombre del root Contrasea del root Nombre de la Base de Datos Pregunta si estn las tablas creadas Cada vez que arranque la BD cree que las tablas. Implementacin (dejar en blanco) Luego le damos a new project y esto crear el proyecto con las caractersticas antes metida en el workspace. Para ver este proyecto en el Eclipse le damos a New project java y le damos a crear desde cdigo existente le ponemos el mismo nombre que tiene el proyecto elegido y ya lo tenemos en el Eclipse. Ahora para crear una entidad en ese proyecto creado le damos al built del seam-gen y pinchamos en new Entity: nos pide el nombre de la clase List -> en la pgina para lista los datos Details -> en la pgina para editar los datos Desde la url http:// localhost:8080/nombreProyectoCreado si le damos a nombreEntidadList podemos aadir datos. 20

Pasos C:\Projects\jboss-seam>seam setup Buildfile: C:\Projects\jboss-seam\seam-gen\build.xml setup: [echo] Welcome to seam-gen :-) Ac va el directorio de tu proyecto Eclipse [input] Enter your Java project workspace [C:/Projects] El directorio raiz de tu instalacion de JBoss [input] Enter your JBoss home directory [C:/Program Files/jboss-4.0.5.GA] Nombre de tu proyecto [input] Enter the project name [myproject] helloworld Esto no es tan importante, va el nombre del paquete de los session beans [input] Enter the Java package name for your session beans [com.mydomain.helloworld] org.jboss.helloworld Esto tampoco es tan importante, ac pons el paquete de los entity beans, pero si queres dale enter nomas [input] Enter the Java package name for your entity beans [org.jboss.helloworld] Esto es menos importante, es para los casos de prueba, dale enter [input] Enter the Java package name for your test cases [org.jboss.helloworld.test] Esto es MUY importante. Pon el tipo de base de datos que uses [input] What kind of database are you using? [hsql] (hsql,mysql,oracle,postgres,mssql,db2,sybase,) mysql Esto tambien es importante. En teoria te va a setear automaticamente el Dialecto de tu base de datos, pero mejor es que te fijes en la lista de dialectos (busc la tabla "Dialects" en esta pagina: http://www.hibernate.org/hib_docs/v3/reference/en/html/ses sion-configuration.html )y elijas el que corresponde [input] Enter the Hibernate dialect for your database [org.hibernate.dialect.MySQLDialect] IMPORTANTISIMO: pon la direccion del archivo con el jar del JDBC Driver [input] Enter the filesystem path to the JDBC driver jar [lib/hsqldb.jar] ../../mysql-connector.jar IMPORTANTE: pon la clase de tu Driver JDBC 21

[input] Enter JDBC driver class for your database [com.mysql.jdbc.Driver] La URL de la base de datos. Cada base de datos tiene su propio tipo de URL. Si no la sabs preguntame de nuevo [input] Enter the JDBC URL for your database [jdbc:mysql:///test] Tu usuario de la base de datos. Tiene que tener permisos de creacion [input] Enter database username [sa] gavin El password de tu usuario de base de datos [input] Enter database password [] Vas a trabajar con tablas que existen, o las vas a generar a partir de tus entidades? [input] Are you working with tables that already exist in the database? [n] (y,n,) y [propertyfile] Creating new property file: C:\Projects\jboss-seam\seam-gen\build.properties [echo] Installing JDBC driver jar to JBoss server [echo] Type 'seam new-project' to create the new project

4.4. Seam new-project


Para usarlo desde Eclipse, te vas a File->Import->Existing Projects In to Workspace y en "Select root directory" vas y buscas el directorio que te creo el seam generator, donde est tu proyecto. Le das finish y est.

22

CAPITULO

5
Instalacin de las herramientas de desarrollo
En la primera parte encontrar las pginas en Internet donde bajar las ltimas versiones de las herramientas que utilizaremos a lo largo del proyecto, luego estn la etapa de instalacin inicial de los servidores de Java EE, mas adelante tenemos la instalacin del servidor de base de datos MySql al que accederemos mediante el conector adecuado, la gestin de las bases de datos se realizaran a travs del gateway MySql Navicat, concluimos la etapa de instalacin con la actualizacin de las Libreras de RichFaces y AJAX. Eclipse IDE for Java EE Developers, basado en 3.4.2 para windows en Internet lo encontraras con el siguiente link para bajar Eclipse Plataform http://www.eclipse.org/downloads/ Java EE 5 SDK for windows incluye JDK y JRE, JVM basado en 1.6.0 en Internet lo encontraras en http://java.sun.com/javase/downloads/index.jsp Jboss Application Server lo puedes encontrar en Internet en la siguiente direccin http://www.jboss.org/jbossas/downloads/ 23

Framewok Jboss Seam 2.1.1 en Internet lo puedes encontrar en la siguiente direccin http://www.seamframework.org/Download

5.1. Etapa de instalacin inicial


Descomprimir, instalar y/o renombrar los archivos bajados de las anteriores URLs mismas que contienen en el DVD, los archivos deberan quedar:

\tsi\Docs\img\img01.jpeg

Los instaladores de la base de datos MySql los encontraras en Internet en la siguiente direccin o bien en el DVD adjunto en la documentacin del proyecto:

http://dev.mysql.com/downloads/mysql/5.1.html.

24

5.2. Etapa instalacin MySql


Seguir los pasos del instalador MySql y establecer los parmetros del usuario Root, algunos un listado de programas deberan quedar as:

\tsi\Docs\img\img02.jpeg

El conector adecuado para usar las base de datos lo puedes encontrar en Internet en la siguiente direccin: http://dev.mysql.com/downloads/connector/ , para nuestro caso utilizamos Connector 5.1.7 copiarlo el archivo mysql-connector-java-5.1.7-bin.jar en C:\java\jboss-4.2.2.GA\server\default\lib

25

tsi\Docs\img\img03.jpeg Instalador de gateway para administrar el servidor de base de datos MySql, navicat8_mysql_en

tsi\Docs\img\img04.jpeg 26

Libreras que incorpora tecnologa Java Server Pages JSP y AJAX en RichFaces 3.3.0 GA, descomprimimos y reemplazamos las archivos: richfaces-ui.jar , richfaces-impl.jar , richfacesapi.jar renombrando los archivos sin la terminacin -3.3.0.GA y reemplazandolos C:\java\jboss-seam-2.0.2.SP1\lib

\tsi\Docs\img\img05.jpeg

Fin.

27

CAPITULO

6
Desarrollo y produccin del software
Para el diagrama de clases, iniciamos con la creacin del esquema de la base de datos; es decir, atributos, restricciones de los atributos de las tablas y las relaciones entre tablas como presentamos a continuacin:

28

\tsi\Docs\img\DDC.jpeg

En base al esquema que nos queda como del resultado de definir los objetos de la base de datos, el archivo .sql : Creamos las base de datos con el programa Navicat: test Abrimos la base de datos test y la seccin de Query. Creamos nueva consulta, copiamos las siguientes instrucciones SQL: DROP TABLE IF EXISTS `test`.`cliente`; CREATE TABLE `test`.`cliente` ( `id` int(10) unsigned NOT NULL auto_increment, `nombre` varchar(45) default NULL, `tipo_cliente_id` int(10) unsigned default NULL, `direccion` varchar(45) default NULL, `telefono` varchar(45) default NULL, `email` varchar(45) default NULL, `web` varchar(45) default NULL, `saldo_apertura` double default NULL, `limite_credito` double default NULL, 29

`name` varchar(20) default NULL, `version` int(11) default NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `test`.`compra`; CREATE TABLE `test`.`compra` ( `id` int(10) unsigned NOT NULL auto_increment, `Description` varchar(45) default NULL, `producto_id` int(10) unsigned default NULL, `cantidad` int(10) unsigned default NULL, `precio_unitario` double default NULL, `importe` double default NULL, `moneda` varchar(45) default NULL, `fecha_hora` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1; DROP TABLE IF EXISTS `test`.`kardex_cliente`; CREATE TABLE `test`.`kardex_cliente` ( `id` int(10) unsigned NOT NULL auto_increment, `cliente_id` int(10) unsigned default NULL, `compra_id` int(10) unsigned default NULL, `saldo` double default NULL, `saldo_fecha` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `FKFEB30A76AB82CA33` (`compra_id`), KEY `FKFEB30A76177EED61` (`cliente_id`), CONSTRAINT `FKFEB30A76177EED61` FOREIGN KEY (`cliente_id`) REFERENCES `cliente` (`id`), CONSTRAINT `FKFEB30A76AB82CA33` FOREIGN KEY (`compra_id`) REFERENCES `compra` (`id`), CONSTRAINT `FK_kardex_cliente_cliente` FOREIGN KEY (`cliente_id`) REFERENCES `cliente` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_kardex_cliente_compra` FOREIGN KEY (`compra_id`) REFERENCES `compra` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DROP TABLE IF EXISTS `test`.`producto`; CREATE TABLE `test`.`producto` ( `id` int(10) unsigned NOT NULL, `tipo_producto_id` int(10) unsigned default NULL, `descripcion` varchar(45) default NULL, `precio_unitario` double default NULL, 30

PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1;

DROP TABLE IF EXISTS `test`.`kardex_producto`; CREATE TABLE `test`.`kardex_producto` ( `id` int(10) unsigned NOT NULL auto_increment, `producto_id` int(10) unsigned default NULL, `compra_id` int(10) unsigned default NULL, `cantidad` int(10) unsigned default NULL, `importe` double default NULL, `fecha_hora` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP, PRIMARY KEY (`id`), KEY `FK65B4DC64AB82CA33` (`compra_id`), KEY `FK65B4DC6417983CB3` (`producto_id`), CONSTRAINT `FK65B4DC6417983CB3` FOREIGN KEY (`producto_id`) REFERENCES `producto` (`id`), CONSTRAINT `FK65B4DC64AB82CA33` FOREIGN KEY (`compra_id`) REFERENCES `compra` (`id`), CONSTRAINT `FK_Kardex_Producto_compra` FOREIGN KEY (`compra_id`) REFERENCES `compra` (`id`) ON DELETE CASCADE ON UPDATE CASCADE, CONSTRAINT `FK_Kardex_Producto_producto` FOREIGN KEY (`producto_id`) REFERENCES `producto` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB DEFAULT CHARSET=latin1; Click en el boton Run de la ventana del query en Navicat. Fin creacin del esquema de base de datos: test

Abrir Eclipse desde el acceso directo puesto en el escritorio del sitio de trabajo.

Crear un workspace con el nombre de carpeta D:\web_dos

31

Creada la carpeta donde del workspace, hacemos que sea por defecto

Luego muestra

32

Abrir la perspectiva Web Development.

Crear un Dynamic Web Project. 33

Buscamos el wizard adecuado

Damos nombre al nuevo proyecto y conectamos al Server Runtime Jboss AS

Asignamos el JRE y el directorio del JBoss AS 34

Configuramos el JBoss AS con Seam 2

Verificamos para la configuracin anterior, las versiones con las que trabajaremos 35

Cambiamos la versin de Java

Caractersticas del modulo web, como esta. 36

La configuracin de JSF como esta

Habilitamos una conexin con Jboss Seam 37

Elegimos el formato EAR como formato de despliegue o instalado

Creamos nuevo perfil de conexin JDBC 38

Damos un nombre a la conexin y una descripcin

Especificamos Driver de conexin y detalles 39

Direccionamos el driver file y completamos detalles faltantes

Seteamos con la definicin del driver 40

Verificamos que el monitor que en el monitor de servicios de windows el MySql este INICIADO

Completados los parmetros de la configuracin Seam para el proyecto 41

Finalizar la configuracin de la habilitacin del proyecto con Seam

Darle click en No para mantenemos en la perspectiva Web Development 42

Las carpetas con archivos generados y recursos quedara como a continuacin

43

44

Iniciamos el mapeo de los objetos relacionales con la perspectiva eclipse Hibernate

En la paleta Hibernate, base de datos podemos ver las tablas de nuestra conexin a la base de datos

45

Creamos una nueva carpeta dentro del grupo -ejb con la finalidad de crear los archivos necesarios para la generacin de las clases Java mapeadas desde Hibernate

Damos nombre a la carpeta temporal para la creacin de archivos a fin de generar las object map class

46

Creamos el archivo de configuracin desde nuevo.

El archivo lo recuperamos dentro de la carpeta ejb que creamos para tan fin

47

Fijamos los parmetros del archivo XML de configuracin

Archivo creado con los parmetros establecidos

48

Creacin como nuevo dentro de la carpeta, el archivo de ingeniera inversa de Hibernate

Carpeta y nombre para el archivo para ingeniera inversa

49

Una vez creada la consola de configuracin, configurar el filtro de tablas

Los dos archivos para el mapeo de tablas a sus clases java correspondientes segn estndar.

50

Abrimos el generador de cdigo de Hibernate

En el administrador del generador de cdigo Hibernate, creamos un nuevo y le asignamos la consola creada.

51

Creamos un nuevo folder dentro del grupo ejb para la generacin de las clases

52

Seleccionamos el directorio de salidas de las clases que vamos a generar

Tique amos que la ingeniera inversa la haremos desde una conexin JDBC, damos el nombre del paquete donde los pondr

53

Creamos un nuevo paquete dentro del grupo ejb para las Entidades

Nombre al nuevo paquete

54

Direccionamos el archivo de configuracin generado

Reveng.xml

55

Tikeamos los estndares con los que se ejecutara la exportacin

Como resultado las clases fueron generadas en la capeta temporal

56

Cambiamos de perspectiva a Seam de Eclipse a fin de generar los Session Beans, Forms

Seleccionamos las clases generadas en la carpeta temporal para copiarlas en el grupo ejb

57

Pegamos las clases seleccionadas para copiarlas en el paquete creado para las Entidades en ejb

Por cada clase copiada en el paquete de las entidades creamos un Seam Entity

58

Le damos un nombre en Seam Entity class

Le damos una chequeada para ver un resumen de la configuracin de la aplicacin Seam

59

60

Una vista a los archivos de la aplicacin generados por Seam

Copiamos desde la carpeta de temporales las clases mapeadas generadas en el paquete del grupo ejb

61

Pegamos las clases correctamente mapeadas al paquete de trabajo de las entidades

Sobrescribimos todas las entidades

62

A las clases le aadimos Id versin serial por ser serializables

Son los XHTML generados al generar Clases como New Entity Seam

63

Vista de un formulario generado: cdigo y componentes JSF y RichFaces

Adems las clases __Home y __List basadas en las clases mapeadas

64

En la carpeta WEB-INF se encuentran las especificaciones para la configuracin de la Vista

Por ejemplo en web.xml podemos cambiar el tema del SKIN a ruby u otro

65

En WEB-INF tambin podemos configurar el mtodo de autenticacion del login-config

Ahora vamos a instalar o desplegar la aplicacin sobre la que hemos estado trabajando, exportando.

66

Como archivo .EAR

Seleccionamos el EAR y el destino donde los desplegaremos (correr)

67

Direccionamos el punto de despliegue de las aplicaciones en el servidor JBoss AS.

Procesando la exportacin de la aplicacin

68

Copiar el data source fuente de conexin (archivo) del workspace de trabajo al punto de despliegue

Pegar en el punto de despliegue

69

Como deben quedar estos dos archivos copiados solamente para su funcionamiento

Ahora vamos a correr el JBoss AS desde la consola de DOS

70

JBoss Bootstrap Environment, Ncleo del sistema iniciado

Terminacin de la subida del servidor JBoss AS: Started in mm:ss:ms

71

Configuracin del Java_Home como variable del sistema Windows XP SP2.

JAVA_HOME

72

Ejecucin de la Aplicacin Web Dinmica, ingresamos la URL

Carga segn las reglas de navegacin home.seam

73

Creamos algunos enlaces de prueba a los XHTML generados

Cliente, ClienteList, Producto y ProductoList

74

Los cambios realizados luego volvemos a exportar sobrescribiendo.

El sondeo del servidor: instala, despliega, actualiza los cambios en el componente o proyecto.

75

Volvemos a cargar la aplicacin dndole la URL de la misma

Hacemos click en Cliente

76

Hacemos click en Cliente Lista

77

CAPITULO

7
Actualizacin de Eclipse IDE
Desde el men Ayuda seleccionar la opcin Software Updates, luego click en opcin Find and Install buscar cpor nuevas caractersticas a instalar y all aadir para actualizar el editor xhtml de eclipse, editor UML y Generador de reportes REST el siguiente enlace.

http://download.jboss.org/jbosstools/updates/development

REST.- Generador de reportes. UML- Herramienta para la realizacin de diagramas con el Lenguaje Modelado Uniforme UML.

78

Vous aimerez peut-être aussi