1. Introdução
1.1. Visão geral
O PDF deste documento encontra-se |AQUI|.
Os exemplos deste documento estão disponíveis |AQUI|.
Aqui, pretendemos apresentar, utilizando exemplos
- a estrutura Java Server Faces 2 (JSF2),
- a biblioteca de componentes PrimeFaces para JSF2, para aplicações de desktop e móveis.
Este documento destina-se principalmente a estudantes e programadores interessados na biblioteca de componentes PrimeFaces [http://www.primefaces.org]. Esta estrutura oferece dezenas de componentes compatíveis com AJAX [http://www.primefaces.org/showcase/ui/home.jsf] que permitem criar aplicações web com uma aparência semelhante à das aplicações de secretária. O PrimeFaces baseia-se no JSF2, daí a necessidade de apresentar primeiro esta estrutura. O PrimeFaces também oferece componentes específicos para dispositivos móveis. Abordaremos esses componentes também.
Para ilustrar o nosso ponto de vista, iremos criar uma aplicação de agendamento de compromissos em diferentes ambientes:
- uma aplicação web clássica utilizando tecnologias JSF2 / EJB3 / JPA num servidor GlassFish 3.1,
- a mesma aplicação com suporte a AJAX, utilizando a tecnologia PrimeFaces,
- e, finalmente, uma versão móvel utilizando a tecnologia PrimeFaces Mobile.
Sempre que uma versão for criada, iremos implementá-la num ambiente JSF2 / Spring / JPA num servidor Tomcat 7. Iremos, portanto, criar seis aplicações Java EE.
Este documento abrange apenas o que é necessário para criar estas aplicações. Por isso, não espere que seja exaustivo — não encontrará isso aqui. Também não se trata de uma compilação de melhores práticas. Os programadores experientes poderão considerar que teriam feito as coisas de forma diferente. Espero simplesmente que este documento também não seja uma compilação de más práticas.
Para saber mais sobre o JSF2 e o PrimeFaces, pode consultar a seguinte referência :
Ocasionalmente, faremos referência a [ref2] para indicar ao leitor que pode aprofundar um determinado tema através deste livro.
Este documento foi escrito para ser acessível ao maior público possível. Os pré-requisitos para a sua compreensão são os seguintes:
- conhecimento da linguagem Java,
- conhecimentos básicos de desenvolvimento Java EE.
Todos os recursos necessários para cumprir estes pré-requisitos podem ser encontrados no site [https://developpez.com]. Alguns deles podem ser encontrados no site [https://stahe.github.io]:
1.2. Exemplo
Os exemplos deste documento estão disponíveis |AQUI| como projetos Maven tanto para o NetBeans como para o Eclipse:
Para importar um projeto para o NetBeans:
- Em [1], abra um projeto,
- em [2], selecione o projeto a abrir no sistema de ficheiros,
- em [3], ele abre.
Com o Eclipse,
- em [1], importar um projeto,
- em [2], o projeto é um projeto Maven existente,
- em [3]: seleciona-o no sistema de ficheiros,
- em [4]: o Eclipse reconhece-o como um projeto Maven,
- em [5], o projeto importado.
1.3. Ferramentas utilizadas
De agora em diante, estamos a utilizar (a partir de maio de 2012):
1.3.1. Instalação do IDE NetBeans
Aqui descrevemos a instalação do NetBeans 7.1.2, disponível no URL [http://netbeans.org/downloads/].
Pode escolher a versão Java EE com o GlassFish 3.1.2 ou o Apache Tomcat 7.0.22. O primeiro permite-lhe desenvolver aplicações Java EE com EJB3 (Enterprise JavaBeans), e o segundo permite-lhe desenvolver aplicações Java EE sem EJB. Substituiremos então os EJBs pela estrutura Spring [http://www.springsource.com/].
Depois de descarregar o instalador do NetBeans, execute-o. Para tal, é necessário ter um JDK (Java Development Kit) [http://www.oracle.com/technetwork/java/javase/overview/index.HTML]. Além do NetBeans 7.1.2, instale:
- a estrutura 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:
- a guia [Projetos] exibe os projetos abertos do NetBeans;
- o separador [Ficheiros] apresenta os vários ficheiros que compõem os projetos NetBeans abertos;
- o separador [Serviços] agrupa várias ferramentas utilizadas pelos projetos do NetBeans,
- em [2], selecione o separador [Serviços] e, em [3], selecione a secção [Servidores];
- em [4], inicie o servidor Tomcat para verificar se está instalado corretamente,
- em [6], no separador [Apache Tomcat] [5], pode verificar se o servidor iniciou corretamente,
- Em [7], pare o servidor Tomcat,
Siga os mesmos passos para verificar se o servidor GlassFish 3.1.2 está instalado corretamente:
- Em [8], inicie o servidor GlassFish,
- Em [9], verifique se ele iniciou corretamente,
Agora temos um IDE totalmente funcional. Podemos começar a criar projetos. À medida que trabalharmos nesses projetos, exploraremos várias funcionalidades do IDE.
Vamos agora instalar o IDE Eclipse e registar os dois servidores — Tomcat 7 e GlassFish 3.1.2 — que acabámos de descarregar. Para tal, precisamos de saber os diretórios de instalação destes dois servidores. Esta informação pode ser encontrada nas propriedades destes dois servidores:
- em [1], a pasta de instalação do Tomcat 7,
- em [2], a pasta de domínios do servidor GlassFish. Ao registar o GlassFish no Eclipse, só terá de fornecer a seguinte informação [D:\Programs\devjava\Glassfish\glassfish-3.1.2\glassfish].
1.3.2. Instalação do IDE Eclipse
Embora o Eclipse não seja o IDE utilizado neste documento, iremos, mesmo assim, descrever a sua instalação. Isto porque os exemplos no documento também são fornecidos como projetos Maven para o Eclipse. O Eclipse não vem com o Maven pré-instalado. Tem de instalar um plugin para o fazer. Em vez de instalar um Eclipse básico, iremos instalar o SpringSource Tool Suite [http://www.springsource.com/developer/sts], um Eclipse pré-equipado com vários plugins relacionados com o framework Spring, bem como uma configuração do Maven pré-instalada.
- Aceda ao site do 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 diretórios [3A] [3B]. Em [4], executamos o ficheiro executável,
- em [5], o espaço de trabalho do IDE após fechar a janela de boas-vindas. Em [6], exibe a janela dos servidores de aplicações,
- em [7], a janela dos servidores. Um servidor está registado. Trata-se de um servidor VMware que não iremos utilizar. Em [8], acedemos ao assistente para adicionar um novo servidor,
- em [9A], são apresentados vários servidores. Optamos por instalar um servidor Apache Tomcat 7 [9B],
- em [10], especificamos o diretório de instalação para o servidor Tomcat 7 instalado com o NetBeans. Se não tiver um servidor Tomcat, utilize o botão [11],
- em [12], o servidor Tomcat aparece na janela [Servidores],
- em [13], iniciamos o servidor,
- em [14], ele está a funcionar,
- em [15], paramos-o.
Na janela [Console], deverá ver os seguintes registos do Tomcat se tudo estiver a funcionar corretamente:
| mai 26, 2012 8:56:51 AM org.apache.catalina.core.AprLifecycleListener init
Infos: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: ...
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:55 AM org.apache.coyote.AbstractProtocol init
Infos: Initializing ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:55 AM org.apache.catalina.startup.Catalina load
Infos: Initialization processed in 4527 ms
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardService startInternal
Infos: Démarrage du service Catalina
mai 26, 2012 8:56:55 AM org.apache.catalina.core.StandardEngine startInternal
Infos: Starting Servlet Engine: Apache Tomcat/7.0.22
mai 26, 2012 8:56:57 AM org.apache.catalina.util.SessionIdGenerator createSecureRandom
Infos: Creation of SecureRandom instance for session ID generation using [SHA1PRNG] took [218] milliseconds.
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["http-bio-8080"]
mai 26, 2012 8:56:57 AM org.apache.coyote.AbstractProtocol start
Infos: Starting ProtocolHandler ["ajp-bio-8009"]
mai 26, 2012 8:56:57 AM org.apache.catalina.startup.Catalina start
Infos: Server startup in 2252 ms
|
 |
- Ainda na janela [Servidores], adicione um novo servidor [16],
- em [17], o servidor Glassfish não está listado,
- neste caso, utilize o link [18],
- em [19], escolha adicionar um adaptador para o servidor GlassFish,
- ele é descarregado e, de volta à janela [Servidores], adicione um novo servidor,
- desta vez em [21], os servidores GlassFish são listados,
- em [22], selecione o servidor GlassFish 3.1.2 descarregado com o NetBeans,
- em [23], especifique a pasta de instalação do GlassFish 3.1.2 (preste atenção ao caminho indicado em [24]),
- se não tiver um servidor GlassFish, utilize o botão [25],
- em [26], o assistente solicita a palavra-passe de administrador do servidor GlassFish. Numa primeira instalação, esta é normalmente adminadmin,
- assim que o assistente terminar, o servidor GlassFish aparece na janela [Servidores] [27],
- em [28], inicie-o,
- em [29], pode surgir 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, clique duas vezes nele na janela [Servidores],
- o que abre a janela [20]; aí, siga o link [Runtime Environment],
- em [31], iremos substituir o JRE predefinido por um JDK. Para tal, utilize o link [32],
- em [33], os JREs instalados na máquina,
- em [34], adicione outro,
- Em [35], selecione [Standard VM] (Máquina Virtual),
- em [36], selecione um JDK (>=1.6),
- em [37], introduza um nome para o novo JRE,
- De volta ao ecrã de seleção do JRE para o GlassFish, selecione o novo JRE especificado em [38],
- assim que o assistente de configuração estiver concluído, reinicie o [GlassFish] [39],
- em [40], ele inicia,
- em [41], a árvore de diretórios do servidor,
- em [42], acedemos aos registos do GlassFish:
| ...
Infos: Running GlassFish Version: GlassFish Server Open Source Edition 3.1.2 (build 23)
Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:7676]
Infos: Grizzly Framework 1.9.46 started in: 125ms - bound to [0.0.0.0:3700]
Infos: Grizzly Framework 1.9.46 started in: 188ms - bound to [0.0.0.0:8080]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:4848]
Infos: Grizzly Framework 1.9.46 started in: 141ms - bound to [0.0.0.0:8181]
Infos: Registered org.glassfish.ha.store.adapter.cache.ShoalBackingStoreProxy for persistence-type = replicated in BackingStoreFactoryRegistry
Infos: GlassFish Server Open Source Edition 3.1.2 (23) heure de démarrage : Felix (13 790 ms), services de démarrage (2 028 ms), total (15 818 ms)
Infos: JMX005: JMXStartupService had Started JMXConnector on JMXService URL service:jmx:rmi://Gportpers3.ad.univ-angers.fr:8686/jndi/rmi://Gportpers3.ad.univ-angers.fr:8686/jmxrmi
|
 |
- Em [43], paramos o servidor Glassfish.
1.3.3. Instalação do [ WampServer]
O [WampServer] é um pacote de software para desenvolvimento em PHP/MySQL/Apache numa máquina Windows. Iremos utilizá-lo exclusivamente para o SGBD MySQL.
- No site do [WampServer] [1], escolha a versão adequada [2],
- o executável descarregado é um instalador. São solicitadas várias informações durante a instalação. Estas não dizem respeito ao MySQL, pelo que podem ser ignoradas. A janela [3] aparece no final da instalação. Inicie o [WampServer],
- em [4], o ícone [WampServer] aparece na barra de tarefas no canto inferior direito do ecrã [4],
- ao clicar nele, aparece o menu [5]. Este permite-lhe gerir o servidor Apache e o SGBD MySQL. Para gerir este último, utilize a opção [PhpMyAdmin],
- que abre a janela apresentada abaixo,

Não iremos fornecer muitos detalhes sobre a utilização do [PhpMyAdmin]. Iremos simplesmente mostrar como utilizá-lo para criar a base de dados para a aplicação de exemplo deste tutorial.