1. Introducción
1.1. Présentation
El PDF de este documento es |AQUÍ|.
Los ejemplos de este documento están disponibles |AQUÍ|.
En este documento nos proponemos presentar, mediante ejemplos
- el marco Java Server Faces 2 (JSF2),
- la biblioteca de componentes PrimeFaces para JSF2, para aplicaciones de escritorio y dispositivos móviles.
Este documento está dirigido principalmente a estudiantes y desarrolladores interesados en la biblioteca de componentes PrimeFaces y [http://www.primefaces.org]. Este marco ofrece varias decenas de componentes con tecnología AJAX ([http://www.primefaces.org/showcase/ui/home.jsf]) que permiten crear aplicaciones web con una apariencia y un comportamiento similares a los de las aplicaciones de escritorio. PrimeFaces se basa en JSF2, de ahí la necesidad de presentar primero este marco de trabajo. Además, PrimeFaces ofrece componentes específicos para dispositivos móviles. También los presentaremos.
Para ilustrar nuestro punto, construiremos una aplicación para programar citas en diferentes entornos:
- una aplicación web clásica con las tecnologías JSF2 / EJB3 / JPA en un servidor Glassfish 3.1,
- la misma aplicación adaptada a Ajax, con la tecnología PrimeFaces,
- y, por último, una versión móvil con la tecnología PrimeFaces Mobile.
Cada vez que se haya creado una versión, la trasladaremos a un entorno JSF2 / Spring / JPA en un servidor Tomcat 7. Por lo tanto, crearemos seis aplicaciones Java EE.
Este documento solo presenta lo necesario para compilar estas aplicaciones. Por lo tanto, no hay que buscar en él la exhaustividad. No la encontrarás. Tampoco es una recopilación de buenas prácticas. Es posible que los desarrolladores experimentados consideren que habrían hecho las cosas de otra manera. Simplemente espero que este documento tampoco sea una recopilación de malas prácticas.
Para profundizar en JSF2 y PrimeFaces, se pueden consultar las siguientes referencias :
- [ref1]: Tutorial de Java EE5 [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML], la referencia de Sun para aprender Java EE5. Se recomienda leer la sección II [Web Tier] para conocer la tecnología web y, en particular, JSF. Los ejemplos del tutorial se pueden descargar. Vienen en forma de proyectos de NetBeans que se pueden cargar y ejecutar,
- [ref2]: Core Faces de David Geary y Cay S. Horstmann, tercera edición, publicado por McGraw-Hill,
- [ref3]: la documentación de PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf],
- [ref4]: la documentación de PrimeFaces Mobile: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf].
En ocasiones haremos referencia a [ref2] para indicar al lector que puede profundizar en un tema con este libro.
El documento se ha redactado de tal manera que pueda ser comprendido por el mayor número posible de personas. Los requisitos previos necesarios para su comprensión son los siguientes:
- conocimiento del lenguaje Java,
- conocimientos básicos de desarrollo en Java EE.
En el sitio web [http://developpez.com] se encuentran todos los recursos necesarios para cumplir con estos requisitos previos. Algunos de ellos se pueden encontrar en el sitio web [https://stahe.github.io]:
- [ref5]: Introducción a la programación web en Java con servlets y páginas JSP (2002): presenta los fundamentos de la programación web en Java: servlets y páginas JSP,
- [ref6]: Fundamentos del desarrollo web MVC en Java con ejemplos (2006): recomienda el desarrollo de aplicaciones web con arquitecturas de tres capas, en las que la capa web implementa el patrón de diseño (Design Pattern) MVC (Modelo, Vista, Controlador).
- [ref7]: Introducción a Java EE con el IDE NetBeans y el servidor de aplicaciones GlassFish (2012). Este documento permite descubrir JSF 1 y los EJB3.
- [ref8]: Persistencia en Java 5 a través de la práctica (2007). Este documento permite conocer la persistencia de datos con JPA (Java Persistence API).
- [ref9]: Cómo crear un servicio web Java EE con el IDE NetBeans 6.5 y el servidor Java EE GlassFish (2009). Este documento analiza la creación de un servicio web. La aplicación de ejemplo que se analiza en este documento proviene de [ref9].
1.2. Los ejemplos de
Los ejemplos de este documento están disponibles en URL [AQUÍ] en forma de proyectos Maven tanto para NetBeans como para Eclipse:
![]() |
Para importar un proyecto en NetBeans:
![]() |
- En [1], se abre un proyecto,
- en [2], se selecciona el proyecto que se desea abrir en el sistema de archivos,
- en [3], se abre.
Con Eclipse,
![]() |
- en [1], se importa un proyecto,
- en [2], el proyecto es un proyecto Maven ya existente,
![]() |
![]() |
- en [3]: se selecciona en el sistema de archivos,
- en [4]: Eclipse lo reconoce como un proyecto de Maven,
- en [5], el proyecto importado.
1.3. Las herramientas utilizadas
A continuación, utilizamos (mayo de 2012):
- el entorno de desarrollo integrado (IDE) NetBeans 7.1.2, disponible en la versión URL [http://www.netbeans.org],
- Eclipse Indigo (IDE) en su versión personalizada como SpringSource Tool Suite (STS) [http://www.springsource.com/developer/sts],
- PrimeFaces en su versión 3.2, disponible en URL y [http://primefaces.org/],
- PrimeFaces Mobile en su versión 0.9.2, disponible en URL y [http://primefaces.org/],
- WampServer para las versiones SGBD, MySQL y [http://www.wampserver.com/].
1.3.1. Instalación de NetBeans IDE
Aquí describimos la instalación de NetBeans 7.1.2, disponible en URL y [http://netbeans.org/downloads/].
![]() |
Se puede descargar la versión de Java EE con los dos servidores: GlassFish 3.1.2 y Apache Tomcat 7.0.22. El primero permite desarrollar aplicaciones Java EE con EJB3 (Enterprise Java Bean), y el otro, aplicaciones Java EE sin EJB. A continuación, reemplazaremos los EJB por el marco Spring.
Una vez descargado el instalador de NetBeans, lo ejecutaremos. Para ello, es necesario contar con un JDK (Java Development Kit) y un [http://www.oracle.com/technetwork/java/javase/overview/index.HTML]. Además de NetBeans 7.1.2, instalaremos:
- el marco JUnit para las pruebas unitarias,
- el servidor GlassFish 3.1.2,
- el servidor Tomcat 7.0.22.
Una vez finalizada la instalación, se inicia NetBeans:
![]() |
- en [1], NetBeans 7.1.2 con tres pestañas:
- la pestaña [Projects] muestra los proyectos de NetBeans abiertos;
- la pestaña [Files] muestra los distintos archivos que componen los proyectos de NetBeans abiertos;
- la pestaña [Services] reúne una serie de herramientas utilizadas por los proyectos de NetBeans;
- en [2], se activa la pestaña [Services] y en [3], la rama [Servers],
- En [4], se inicia el servidor Tomcat para verificar que se haya instalado correctamente,
![]() |
- en [6], en la pestaña [Apache Tomcat] [5], se puede verificar que el servidor se haya iniciado correctamente,
- en [7], se detiene el servidor Tomcat,
Se procede de la misma manera para verificar la correcta instalación del servidor Glassfish 3.1.2:
![]() |
- en [8], se inicia el servidor GlassFish,
- en [9] se verifica que se haya iniciado correctamente,
![]() |
- en [10], lo detenemos.
Ahora tenemos un IDE operativo. Podemos comenzar a desarrollar proyectos. Dependiendo de estos, tendremos que detallar diferentes características del IDE.
Ahora instalaremos el IDE Eclipse y, dentro de él, registraremos los dos servidores Tomcat 7 y Glassfish 3.1.2 que acabamos de descargar. Para ello, necesitamos conocer las carpetas de instalación de estos dos servidores. Esta información se encuentra en las propiedades de ambos servidores:
![]() |
- en [1], la carpeta de instalación de Tomcat 7,
![]() |
- en [2], la carpeta de dominios del servidor Glassfish. En la configuración de Glassfish en Eclipse, solo habrá que ingresar la siguiente información: [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].
1.3.2. Instalación de Eclipse
Aunque Eclipse no es el IDE que se utiliza en este documento, presentamos de todos modos su instalación. De hecho, los ejemplos del documento también se proporcionan en forma de proyectos Maven para Eclipse. Eclipse no viene con Maven preintegrado. Para ello, es necesario instalar un complemento. En lugar de instalar una versión básica de Eclipse, instalaremos SpringSource Tool Suite [http://www.springsource.com/developer/sts], una versión de Eclipse que ya viene equipada con numerosos complementos relacionados con el marco Spring, así como con una configuración de Maven preinstalada.
![]() |
- visita el sitio web de SpringSource Tool Suite (STS) [1], para descargar la versión actual de STS [2A] [2B],
![]() |
![]() |
- el archivo descargado es un instalador que crea la estructura de archivos [3A] [3B]. En [4], se ejecuta el programa,
- en [5], aparece la ventana de trabajo de IDE después de cerrar la ventana de bienvenida. En [6], se muestra la ventana de servidores de aplicaciones,
![]() |
- en [7], la ventana de servidores. Se registra un servidor. Se trata de un servidor VMware que no utilizaremos. En [8], se abre el asistente para agregar un nuevo servidor,
![]() |
- en [9A], se nos ofrecen varios servidores. Elegimos instalar un servidor Tomcat 7 de Apache [9B],
![]() |
- en [10], designamos la carpeta de instalación del servidor Tomcat 7 instalado con NetBeans. Si no contamos con un servidor Tomcat, utilizamos el botón [11],
- en [12], el servidor Tomcat aparecerá en la ventana [Servers],
![]() |
- en [13], iniciamos el servidor,
- en [14], ya está en ejecución,
- en [15], lo detenemos.
En la ventana [Console], se obtienen los siguientes registros de Tomcat si todo sale bien:
![]() |
- todavía en la ventana [Servers], se agrega un nuevo servidor [16],
- en [17], el servidor Glassfish no aparece en la lista;
- en este caso, se utiliza el enlace [18],
![]() |
- en [19], se elige agregar un adaptador para el servidor Glassfish,
- se descarga y, de regreso a la ventana [Servers], se agrega un nuevo servidor,
- esta vez en [21], se muestran los servidores Glassfish,
![]() |
- en [22], se selecciona el servidor Glassfish 3.1.2 descargado con NetBeans,
- en [23], se indica la carpeta de instalación de Glassfish 3.1.2 (presta atención a la ruta indicada en [24]),
- si no tienes un servidor Glassfish, usa el botón [25],
![]() |
- en [26], el asistente nos solicita la contraseña del administrador del servidor Glassfish. Para una primera instalación, normalmente es adminadmin,
- una vez que el asistente haya terminado, en la ventana [Servers], aparecerá el servidor Glassfish [27],
![]() |
- en [28]; lo iniciamos,
- en [29] puede surgir un problema. Esto depende de la información proporcionada durante la instalación. Glassfish requiere un JDK (Java Development Kit) y no un JRE (Java Runtime Environment),
- para acceder a las propiedades del servidor Glassfish, haz doble clic en él en la ventana [Servers],
- aparece la ventana [20], en la que se sigue el enlace [Runtime Environment],
![]() |
- en [31], vamos a reemplazar el JRE utilizado por defecto por un JDK. Para ello, utilizamos el enlace [32],
- en [33], los JRE instalados en la máquina,
- en [34], se agrega otro,
![]() |
- en [35], se elige [Standard VM] (Máquina virtual),
- en [36], se selecciona un JDK (>=1.6),
- en [37], el nombre que se le da al nuevo JRE,
![]() |
- Al volver a la pantalla de selección de JRE para Glassfish, elegimos el nuevo JRE, que se denomina [38],
- una vez finalizado el asistente de configuración, reiniciamos [Glassfish] y [39],
- en [40], se inicia,
![]() |
- en [41], el árbol de directorios del servidor,
- en [42], se accede a los registros de Glassfish:
![]() |
- en [43], detenemos el servidor Glassfish.
1.3.3. Instalación de [WampServer]
[WampServer] es un paquete de software para desarrollar en PHP / MySQL / Apache en una máquina con Windows. Lo utilizaremos únicamente para SGBD y MySQL.
![]() |
- En el sitio web de [WampServer] [1], elige la versión adecuada [2],
- el archivo ejecutable descargado es un instalador. Durante la instalación se solicita diversa información. Esta información no se refiere a MySQL. Por lo tanto, se puede ignorar. Al finalizar la instalación, aparece la ventana [3]. Se ejecuta [WampServer],
![]() |
- en [4], el ícono de [WampServer] se instala en la barra de tareas, en la parte inferior derecha de la pantalla [4],
- al hacer clic en él, se muestra el menú [5]. Este permite administrar el servidor Apache y el SGBD MySQL. Para administrar este último, se utiliza la opción [PhpPmyAdmin],
- lo cual abre la ventana que se muestra a continuación,

No daremos muchos detalles sobre el uso de [PhpMyAdmin]. Simplemente mostraremos cómo utilizarlo para crear la base de datos de la aplicación de ejemplo de este tutorial.






























