1. Introdução
1.1. Présentation
O PDF deste documento é |AQUI|.
Os exemplos deste documento estão disponíveis |AQUI|.
Propomos aqui apresentar, com base em exemplos
- o framework Java Server Faces 2 (JSF2),
- a biblioteca de componentes PrimeFaces para JSF2, destinada a aplicações de secretária e móveis.
Este documento destina-se principalmente a estudantes e programadores interessados na biblioteca de componentes PrimeFaces [http://www.primefaces.org]. Este framework oferece várias dezenas de componentes com Ajax [http://www.primefaces.org/showcase/ui/home.jsf] que permitem construir aplicações web com um aspeto e um comportamento semelhantes aos das aplicações de secretária. O PrimeFaces baseia-se no JSF2, daí a necessidade de apresentar primeiro este framework. Além disso, o PrimeFaces oferece componentes específicos para dispositivos móveis. Também os iremos apresentar.
Para ilustrar o nosso argumento, iremos construir uma aplicação de marcação de consultas em diferentes ambientes:
- uma aplicação web clássica com as tecnologias JSF2 / EJB3 / JPA num servidor Glassfish 3.1,
- a mesma aplicação com AJAX, utilizando a tecnologia PrimeFaces,
- e, por fim, uma versão móvel com a tecnologia PrimeFaces Mobile.
Sempre que uma versão for desenvolvida, iremos portá-la para um ambiente JSF2 / Spring / JPA num servidor Tomcat 7. Iremos, portanto, desenvolver seis aplicações Java EE.
Este documento apresenta apenas o que é necessário para compilar estas aplicações. Por isso, não se deve procurar nele exaustividade. Não a encontrará. Também não se trata de um compêndio de boas práticas. Os programadores experientes poderão, assim, considerar que teriam feito as coisas de forma diferente. Espero simplesmente que este documento também não seja um compêndio de más práticas.
Para aprofundar os temas JSF2 e PrimeFaces, podem ser consultadas as seguintes referências :
- [ref1]: Tutorial de Java EE5, a referência da Sun para descobrir Java [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML]. Deve ler-se a secção II [Web Tier] para conhecer a tecnologia web e, em particular, JSF. Os exemplos do tutorial podem ser descarregados. Estão disponíveis sob a forma de projetos NetBeans que podem ser carregados e executados,
- [ref2]: «Core Faces» de David Geary e Cay S. Horstmann, terceira edição, publicado pela McGraw-Hill,
- [ref3]: a documentação do PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf],
- [ref4]: a documentação de PrimeFaces Mobile: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf].
Por vezes, faremos referência ao [ref2] para indicar ao leitor que pode aprofundar um tema com este livro.
O documento foi escrito de forma a ser compreensível para o maior número possível de pessoas. Os pré-requisitos necessários para a sua compreensão são os seguintes:
- conhecimento da linguagem Java,
- conhecimentos básicos de desenvolvimento em Java EE.
No site [http://developpez.com] encontram-se todos os recursos necessários para cumprir estes pré-requisitos. Alguns deles podem ser encontrados no site [http://tahe.developpez.com]:
- [ref5]: Introdução à Linguagem Java (1998): apresenta os fundamentos da programação web em Java: servlets e páginas JSP,
- [ref6]: Noções básicas de desenvolvimento Web MVC em Java através de exemplos (2006): recomenda o desenvolvimento de aplicações web com arquiteturas de três camadas, em que a camada web implementa o padrão de conceção (Design Pattern) MVC (Modelo, Vista, Controlador).
- [ref7]: Introdução ao Java EE com o IDE NetBeans e o servidor de aplicações GlassFish (2012). Este documento permite descobrir o JSF 1 e os EJB3.
- [ref8]: Persistência em Java 5 através da prática (2007). Este documento permite descobrir a persistência de dados com o JPA (Java Persistence API).
- [ref9]: Criação de um Serviço Web Java EE com o IDE NetBeans 6.5 e o Servidor Java EE GlassFish (2009). Este documento aborda a criação de um serviço web. A aplicação de exemplo analisada neste documento provém de [ref9].
1.2. Os exemplos de
Os exemplos do presente documento estão disponíveis em URL e [AQUI] sob a forma de projetos Maven, tanto para o NetBeans como para o Eclipse:
![]() |
Para importar um projeto no NetBeans:
![]() |
- no [1], abre-se um projeto,
- em [2], selecione o projeto a abrir no sistema de ficheiros,
- em [3], o projeto é aberto.
Com o Eclipse,
![]() |
- em [1], importa-se um projeto,
- em [2], o projeto é um projeto Maven já existente,
![]() |
![]() |
- em [3]: é-o indicado no sistema de ficheiros,
- em [4]: o Eclipse reconhece-o como um projeto Maven,
- em [5], o projeto importado.
1.3. As ferramentas utilizadas
A seguir, utilizamos (maio de 2012):
- o NetBeans 7.1.2 (Ambiente de Desenvolvimento Integrado), disponível na versão URL [http://www.netbeans.org],
- o Eclipse Indigo IDE [http://www.eclipse.org/] na sua versão personalizada SpringSource Tool Suite (STS) [http://www.springsource.com/developer/sts],
- PrimeFaces na sua versão 3.2, disponível no URL [http://primefaces.org/],
- PrimeFaces Mobile na sua versão 0.9.2, disponível para o URL e [http://primefaces.org/],
- WampServer para o SGBD, MySQL e [http://www.wampserver.com/].
1.3.1. Instalação do NetBeans IDE
Descrevemos aqui a instalação do NetBeans 7.1.2 disponível no URL e no [http://netbeans.org/downloads/].
![]() |
Pode-se utilizar a versão Java EE acima referida, juntamente com os dois servidores Glassfish 3.1.2 e Apache Tomcat 7.0.22. O primeiro permite desenvolver aplicações Java EE com EJB3 (Enterprise Java Bean) e o outro permite desenvolver aplicações Java EE sem EJB. Substituiremos então os EJB pelo framework Spring.
Depois de descarregar o instalador do NetBeans, iremos executá-lo. Para tal, é necessário ter um JDK (Java Development Kit) e um [http://www.oracle.com/technetwork/java/javase/overview/index.HTML]. Além do NetBeans 7.1.2, iremos instalar:
- o framework JUnit para testes unitários,
- o servidor Glassfish 3.1.2,
- o servidor Tomcat 7.0.22.
Assim que a instalação estiver concluída, inicie o NetBeans:
![]() |
- em [1], o NetBeans 7.1.2 com três separadores:
- o separador [Projects] apresenta os projetos NetBeans abertos;
- o separador [Files] apresenta os diferentes ficheiros que compõem os projetos NetBeans abertos;
- o separador [Services] reúne várias ferramentas utilizadas pelos projetos do NetBeans,
- em [2], ativa-se o separador [Services] e, em [3], o ramo [Servers],
- No [4], iniciamos o servidor Tomcat para verificar se a instalação foi bem-sucedida,
![]() |
- em [6], no separador [Apache Tomcat] [5], é possível verificar se o servidor foi iniciado corretamente,
- em [7], encerra-se o servidor Tomcat,
Procedemos da mesma forma para verificar se o servidor Glassfish 3.1.2 foi instalado corretamente:
![]() |
- em [8], inicia-se o servidor Glassfish,
- em [9], verifica-se se foi iniciado corretamente,
![]() |
- em [10], encerra-se o servidor.
Temos agora um IDE operacional. Podemos começar a criar projetos. Dependendo desses projetos, teremos de detalhar diferentes características do IDE.
Vamos agora instalar o Eclipse IDE e, dentro dele, registar os dois servidores Tomcat 7 e Glassfish 3.1.2 que acabámos de descarregar. Para tal, precisamos de saber as pastas de instalação destes dois servidores. Estas informações encontram-se nas propriedades destes dois servidores:
![]() |
- em [1], a pasta de instalação do Tomcat 7,
![]() |
- e [2], a pasta dos domínios do servidor Glassfish. No registo do Glassfish no Eclipse, basta indicar apenas a seguinte informação: [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].
1.3.2. Instalação do Eclipse
Embora o Eclipse não seja a versão IDE utilizada neste documento, apresentamos, mesmo assim, o seu processo de instalação. Com efeito, os exemplos do documento são também fornecidos sob a forma de projetos Maven para o Eclipse. O Eclipse não vem com o Maven pré-integrado. É necessário instalar um plugin para o efeito. Em vez de instalar um Eclipse «puro», vamos instalar o SpringSource Tool Suite [http://www.springsource.com/developer/sts], um Eclipse pré-equipado com vários plugins relacionados com o framework Spring, mas também com uma configuração do Maven pré-instalada.
![]() |
- aceda ao site da SpringSource Tool Suite (STS) [1], para descarregar a versão atual do STS [2A] [2B],
![]() |
![]() |
- o ficheiro descarregado é um instalador que cria a estrutura de ficheiros [3A] [3B]. No [4], executa-se o executável,
- em [5], a janela de trabalho do IDE após fechar a janela de boas-vindas. Em [6], é exibida a janela dos servidores de aplicações,
![]() |
- em [7], a janela dos servidores. Está registado um servidor. Trata-se de um servidor VMware que não iremos utilizar. Em [8], acede-se ao assistente para adicionar um novo servidor,
![]() |
- em [9A], são-nos apresentados vários servidores. Optamos por instalar um servidor Tomcat 7 da Apache [9B],
![]() |
- em [10], indicamos a pasta de instalação do servidor Tomcat 7 instalado com o NetBeans. Se não tivermos um servidor Tomcat, utilizamos o botão [11],
- em [12], o servidor Tomcat aparece na janela [Servers],
![]() |
- em [13], iniciamos o servidor,
- em [14], está em execução,
- em [15], paramos-o.
Na janela [Console], obtêm-se os seguintes registos do Tomcat, se tudo correr bem:
![]() |
- Ainda na janela [Servers], adiciona-se um novo servidor [16],
- em [17], o servidor Glassfish não é apresentado,
- nesse caso, utiliza-se o link [18],
![]() |
- em [19], opta-se por adicionar um adaptador para o servidor Glassfish,
- o qual é descarregado e, de volta à janela [Servers], adiciona-se um novo servidor,
- desta vez em [21], os servidores Glassfish são sugeridos,
![]() |
- na janela [22], seleciona-se o servidor Glassfish 3.1.2 descarregado com o NetBeans,
- em [23], indica-se a pasta de instalação do Glassfish 3.1.2 (tenha cuidado com o caminho indicado em [24]),
- se não tiver um servidor Glassfish, utilize o botão [25],
![]() |
- em [26], o assistente solicita a palavra-passe do administrador do servidor Glassfish. Numa primeira instalação, é normalmente adminadmin,
- quando o assistente terminar, na janela [Servers], o servidor Glassfish aparece como [27],
![]() |
- em [28], iniciamo-lo,
- em [29] pode ocorrer um problema. Isso depende das informações fornecidas durante a instalação. O Glassfish requer um JDK (Java Development Kit) e não um JRE (Java Runtime Environment),
- para aceder às propriedades do servidor Glassfish, clica-se duas vezes sobre ele na janela [Servers],
- aparece a janela [20], na qual se segue a ligação [Runtime Environment],
![]() |
- em [31], vamos substituir o JRE utilizado por predefinição por um JDK. Para tal, utilizamos o link [32],
- em [33], os JRE instalados na máquina,
- no [34], adiciona-se outro,
![]() |
- em [35], escolhe-se [Standard VM] (Máquina Virtual),
- em [36], seleciona-se um JDK (>=1.6),
- em [37], o nome atribuído ao novo JRE,
![]() |
- ao ser solicitado a escolher entre o JRE para o Glassfish, optamos pelo novo JRE, declarado como [38],
- assim que o assistente de configuração estiver concluído, reiniciamos o [Glassfish] e o [39],
- no [40], este é iniciado,
![]() |
- no [41], a estrutura do servidor,
- em [42], acede-se aos registos do Glassfish:
![]() |
- em [43], desligamos o servidor Glassfish.
1.3.3. Instalação do [WampServer]
O [WampServer] é um conjunto de software para desenvolver em PHP / MySQL / Apache numa máquina Windows. Iremos utilizá-lo exclusivamente para o SGBD e o MySQL.
![]() |
- no site do [WampServer] [1], escolha a versão adequada [2],
- o ficheiro executável descarregado é um programa de instalação. São solicitadas várias informações durante a instalação. Estas não dizem respeito ao MySQL. Por isso, podem ser ignoradas. A janela [3] é apresentada no final da instalação. Inicie o [WampServer],
![]() |
- no [4], o ícone do [WampServer] é instalado na barra de tarefas, na parte inferior direita do ecrã [4],
- ao clicar nele, é exibido o menu [5]. Este permite gerir o servidor Apache e o SGBD MySQL. Para gerir este último, utiliza-se a opção [PhpPmyAdmin],
- aparece então a janela abaixo,

Não entraremos em muitos detalhes sobre a utilização do [PhpMyAdmin]. Mostraremos simplesmente como utilizá-lo para criar a base de dados da aplicação de exemplo deste tutorial.






























