Skip to content

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:

  1. uma aplicação web clássica com as tecnologias JSF2 / EJB3 / JPA num servidor Glassfish 3.1,
  1. a mesma aplicação com AJAX, utilizando a tecnologia PrimeFaces,
  2. 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]:

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:

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 [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:
...
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], 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,

Image

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.