Desarrollo de aplicaciones web
con Jakarta EE
César Francisco Castillo
Desarrollo de aplicaciones web
con Jakarta EE
César Francisco Castillo
Desarrollo de aplicaciones web con Jakarta EE
Primera edición, 2021
© 2021 César Francisco Castillo
© 2021 MARCOMBO, S. L.
www.marcombo.com
Revisor técnico: Arístides Villarreal Bravo
Correctores: Haizea Beitia y Beatriz García
Maquetador: Giancarlo Salinas
Directora de producción: Ma. Rosa Castillo
Diseño de la cubierta: ENEDENÚ DISEÑO GRÁFICO
Producción del ePub: booqlab
Cualquier forma de reproducción, distribución, comunicación pública o transformación de esta obra solo puede ser realizada con la autorización de sus titulares, salvo excepción prevista por la ley. Diríjase a CEDRO (Centro Español de Derechos Reprográficos, www.cedro.org) si necesita fotocopiar o escanear algún fragmento de esta obra.
ISBN: 978-84-267-3313-9
Este trabajo está dedicado a mi familia, especialmente a mi madre, María Alborada Martinez de Cerra, a quien le debo todo.
A la memoria de mis abuelos Juan Carlos Martínez y Olga Yolanda Arias de Martínez.
Acerca del autor Acerca del autor César Francisco Castillo cursó la carrera de Programador Universitario en Informática en Ia Universidad Nacional de Santiago del Estero, Argentina. En el marco del proyecto “Un paso más hacia la universidad que queremos: inserción curricular de la extensión en la UNSE”, coordinado por la secretaría de extensión del rectorado de la Universidad Nacional de Santiago del Estero, desarrolló Artemisa, un software especializado en la gestión de la extensión universitaria con tecnología Java EE. Actualmente trabaja como desarrollador en la SAED (Sede Administrativa de las Escuelas Diocesanas) del obispado de su provincia.
Acerca del revisor técnico Acerca del revisor técnico Arístides Villarreal Bravo es miembro del Netbeans Dream Team, desarrollador de Java EE, revisor técnico de la editorial Packt Publish y desarrollador de plugins para Netbeans. Fue coordinador del equipo de traducción de Netbeans al español. Sus especialidades son Java, Netbeans, J2EE, Swing, JSF y JPA. Actualmente trabaja en la Universidad Tecnológica de Panamá y ejerce como desarrollador en JavaScaz, una empresa que desarrolla soluciones en Java y Scala desde Panamá.
Agradecimientos Agradecimientos Escribir un libro no es tarea de una sola persona. Han sido muchas las que, a lo largo de este camino de sueños y proyectos, me han brindado su apoyo de una u otra manera. Me gustaría agradecer especialmente: En primer lugar, al Sr. Jeroni Boixareu, por abrirme las puertas de la familia Marcombo y permitirme ser parte de ella a través de esta obra. Al Lic. Arístides Villarreal Bravo de la Universidad Tecnológica de Panamá, no solo por aceptar revisar los aspectos técnicos de este libro, sino también por su humildad, generosidad y encomiable labor de compartir su conocimiento, a través de sus libros y artículos publicados en su blog personal, con la comunidad de desarrolladores Java de habla hispana. Al Ing. Geovanny Mendoza González, de la Universidad Simón Bolívar de Colombia, especialista en Ingeniería de Software y líder del grupo de usuarios Java de Barranquilla (Colombia), por redactar el prólogo que acompaña a esta obra. Al Ing. Ramón Sánchez, mi “compañero de equipo”, por sus enseñanzas y consejos, los cuales me han ayudado a crecer como desarrollador. A Eugenia Rocha, por su apoyo incondicional a lo largo de estos años. Muchas de sus sugerencias están presentes en este libro. También quiero agradecer la comprensión de todas aquellas personas a las que no pude dedicar el tiempo y la atención suficiente, por estar inmerso en este proyecto. Y finalmente, como no podia ser de otra manera, un especial agradecimiento a toda mi famila, Francisco Roque “El tigre” Cerra, Maria Alborada Martinez de Cerra, Nalia Mariangeles y Annabella Ascención Castillo, porque sin ellos nada de esto hubiera sido posible. A todos, muchas gracias César Francisco Castillo
Lista de siglas y acrónimos
Prólogo Prólogo Este libro se escribió con la idea de dar a conocer la plataforma de Jakarta EE. Proporciona un material didáctico y, al mismo tiempo, da un contexto de cómo desarrollar soluciones innovadoras y adaptadas a las necesidades del mercado mundial, utilizando las tecnologías apropiadas para cada proyecto y aplicando las mejores prácticas en el desarrollo de software en Jakarta EE: el lector no podrá ir muy lejos si no se le inculcan los conceptos básicos de Jakarta EE. Por lo tanto, es muy importante usar JPA (Java Persistence API) para construir un modelo de dominio que es la base fundamental de la aplicación que se va a desarrollar. En el transcurso de este texto veremos cómo se puede integrar con la capa de presentación utilizando JSF para optimizar la ejecución de una aplicación. El objetivo del libro es guiar al lector en la construcción de una aplicación del mundo real utilizando las técnicas y herramientas aprendidas en cada capítulo: realizar logs, control de versiones en la base de datos y un poco de DevOps con Jenkins. A medida que vaya avanzando en la construcción, el lector irá solventando las diferentes problemáticas que se van presentando. Si algún lector tiene alguna sugerencia o desea proponer alguna modificación, puede enviarla por correo electrónico y será tenida en cuenta en una futura actualización o corrección. Las sugerencias son siempre bienvenidas. Geovanny Mendoza González
1. Introducción a Jakarta EE 1 Introducción a Jakarta EE Jakarta EE es una plataforma derivada de Java Enterprise Edition (JEE) que se compone de un amplio conjunto de especificaciones, las cuales permiten cubrir la mayoría de las necesidades del desarrollo de una aplicación empresarial. La direccion URL del sitio oficial de Jakarta EE es: https://jakarta.ee/ En este capítulo, nos ocuparemos de los siguientes temas: * Historia y evolución * APIs que componen Jakarta EE 8 * Especificaciones que estudiar * Concepto de desarrollo de aplicaciones en capas
2. Persistencia de datos con JPA 2 Persistencia de datos con JPA A diferencia de las pequeñas aplicaciones que solo trabajan con unos cuantos datos que se mantienen en memoria durante el tiempo de ejecución, las aplicaciones empresariales trabajan con un volumen importante de datos y mantenerlos todos en memoria tendría un coste significativo. Por ello, las aplicaciones empresariales deben disponer de algún mecanismo eficiente para poder almacenarlos y recuperarlos de una base de datos. Ese mecanismo nos los provee Jakarta mediante su API JPA. JPA puede ser empleada en aplicaciones web y en aplicaciones standalone . Si bien es cierto que este libro tiene como objeto de estudio el contexto web, en este capítulo nos centraremos en aplicaciones simples de consola, para que el lector pueda ir familiarizándose con los conceptos de esta API. Gran parte del código fuente de los ejemplos aquí desarrollados se encuentra disponible en el repositorio de GitHub, cuya dirección URL es la siguiente: https://github.com/Francisco-Castillo/capitulo-jpa.git En este capítulo abordaremos los siguientes temas: * Introducción a JPA * Arquitectura y componentes * Mapeo objeto-relacional (ORM) * Relaciones entre entidades * Jerarquías * Lenguaje JPQL * Operaciones del Entity Manager * Oyentes (Entity Listeners) * Criteria API
Читать дальше