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, por meio de exemplos

  • o framework Java Server Faces 2 (JSF2),
  • a biblioteca de componentes PrimeFaces para JSF2, para aplicativos de desktop e dispositivos móveis.

Este documento destina-se principalmente a estudantes e desenvolvedores interessados na biblioteca de componentes PrimeFaces e [http://www.primefaces.org]. Esse framework oferece dezenas de componentes com suporte a AJAX ([http://www.primefaces.org/showcase/ui/home.jsf]), permitindo a construção de aplicativos web com aparência e comportamento semelhantes aos dos aplicativos de desktop. O PrimeFaces baseia-se no JSF2, daí a necessidade de apresentar primeiro esse framework. Além disso, o PrimeFaces oferece componentes específicos para dispositivos móveis. Também os apresentaremos.

Para ilustrar nosso argumento, construiremos um aplicativo de agendamento de consultas em diferentes ambientes:

  1. uma aplicação web clássica com as tecnologias JSF2 / EJB3 / JPA em um servidor Glassfish 3.1,
  1. o mesmo aplicativo 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, a portaremos para um ambiente JSF2 / Spring / JPA em um servidor Tomcat 7. Assim, desenvolveremos seis aplicações Java EE.

Este documento apresenta apenas o necessário para compilar essas aplicações. Portanto, não se deve buscar nele exaustividade. Não a encontrará. Também não se trata de um manual de boas práticas. Desenvolvedores experientes poderão, assim, achar que teriam feito as coisas de maneira diferente. Espero simplesmente que este documento também não seja um manual de más práticas.

Para se aprofundar nos temas JSF2 e PrimeFaces, pode-se utilizar as seguintes referências :

  • [ref1]: Tutorial de Java EE5, a referência da Sun para aprender Java [http://java.sun.com/javaee/5/docs/tutorial/doc/index.HTML]. Leia a seção II [Web Tier] para conhecer a tecnologia web e, em especial, JSF. Os exemplos do tutorial podem ser baixados. Eles vêm na forma de projetos do NetBeans que podem ser carregados e executados,
  • [ref2]: Core JavaServer Faces, de David Geary e Cay S. Horstmann, terceira edição, editora McGraw-Hill,
  • [ref3]: a documentação do PrimeFaces [http://primefaces.googlecode.com/files/primefaces_users_guide_3_2.pdf],
  • [ref4]: a documentação do PrimeFaces Mobile: [http://primefaces.googlecode.com/files/primefaces_mobile_users_guide_0_9_2.pdf].

Às vezes, faremos referência ao [ref2] para indicar ao leitor que ele pode aprofundar-se em um determinado tema com este livro.

O documento foi escrito de forma a ser compreendido pelo maior número possível de pessoas. Os pré-requisitos necessários para sua compreensão são os seguintes:

  • conhecimento da linguagem Java,
  • conhecimentos básicos de desenvolvimento em Java EE.

No site [http://developpez.com], você encontrará todos os recursos necessários para esses pré-requisitos. Alguns deles podem ser encontrados no site [http://tahe.developpez.com]:

1.2. Os exemplos de

Os exemplos deste documento estão disponíveis em URL e [AQUI] na forma de projetos Maven tanto para o NetBeans quanto para o Eclipse:

  

Para importar um projeto no NetBeans:

  • no [1], abre-se um projeto,
  • em [2], selecione o projeto a ser aberto no sistema de arquivos,
  • em [3], ele é aberto.

Com o Eclipse,

  • em [1], importa-se um projeto,
  • em [2], o projeto é um projeto Maven já existente,
  • em [3]: ele é especificado no sistema de arquivos,
  • em [4]: o Eclipse o reconhece 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 no URL [http://www.netbeans.org],
  • o Eclipse Indigo IDE [http://www.eclipse.org/] em sua versão personalizada SpringSource Tool Suite (STS) [http://www.springsource.com/developer/sts],
  • PrimeFaces em sua versão 3.2, disponível no URL [http://primefaces.org/],
  • PrimeFaces Mobile, em 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/].

 

É possível utilizar a versão Java EE com os dois servidores Glassfish 3.1.2 e Apache Tomcat 7.0.22. O primeiro permite desenvolver aplicativos Java EE com EJB3 (Enterprise Java Bean), e o outro, aplicativos Java EE sem EJB. Substituiremos, então, os EJBs pelo framework Spring.

Depois de baixar o instalador do NetBeans, vamos executá-lo. Para isso, é necessário ter o JDK (Java Development Kit) e o [http://www.oracle.com/technetwork/java/javase/overview/index.HTML]. Além do NetBeans 7.1.2, instalaremos:

  • o framework JUnit para testes unitários,
  • o servidor GlassFish 3.1.2,
  • o servidor Tomcat 7.0.22.

Após a conclusão da instalação, inicie o NetBeans:

  • em [1], o NetBeans 7.1.2 com três abas:
  • a aba [Projects] exibe os projetos do NetBeans abertos;
  • a aba [Files] exibe os diversos arquivos que compõem os projetos do NetBeans abertos;
  • a aba [Services] reúne várias ferramentas utilizadas pelos projetos do NetBeans;
  • em [2], ativa-se a aba [Services] e, em [3], o ramo [Servers],
  • No [4], iniciamos o servidor Tomcat para verificar se a instalação foi realizada corretamente,
  • em [6], na aba [Apache Tomcat] [5], é possível verificar se o servidor foi iniciado corretamente,
  • em [7], desligamos o servidor Tomcat,

Proceda 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 ele foi iniciado corretamente,
  • em [10], ele é desligado.

Agora temos um IDE operacional. Podemos começar a criar projetos. Dependendo deles, teremos que detalhar diferentes características do IDE.

Agora vamos instalar o Eclipse IDE e, nele, registrar os dois servidores Tomcat 7 e Glassfish 3.1.2 que acabamos de baixar. Para isso, precisamos saber os diretórios de instalação desses dois servidores. Essas informações podem ser encontradas nas propriedades desses dois servidores:

  • em [1], a pasta de instalação do Tomcat 7,
  • e [2], a pasta dos domínios do servidor Glassfish. No registro do Glassfish no Eclipse, será necessário fornecer 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, sua instalação. De fato, os exemplos do documento também são fornecidos na forma de projetos Maven para o Eclipse. O Eclipse não vem com o Maven pré-integrado. É necessário instalar um plug-in para isso. Em vez de instalar um Eclipse básico, vamos instalar o SpringSource Tool Suite [http://www.springsource.com/developer/sts], um Eclipse que já vem equipado com vários plug-ins relacionados ao framework Spring, além de uma configuração do Maven pré-instalada.

  • acesse o site do SpringSource Tool Suite (STS) [1], para baixar a versão atual do STS [2A] [2B],
  • o arquivo baixado é um instalador que cria a estrutura de arquivos [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], exibe-se a janela dos servidores de aplicativos,
  • em [7], a janela dos servidores. Um servidor está registrado. Trata-se de um servidor VMware que não utilizaremos. Em [8], acionamos o assistente para adicionar um novo servidor,
  • em [9A], são apresentados diversos 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. Caso não haja um servidor Tomcat, use o botão [11],
  • em [12], o servidor Tomcat aparecerá na janela [Servers],
  • em [13], iniciamos o servidor,
  • em [14], ele está em execução,
  • na janela [15], ele é desligado.

Na janela [Console], obtemos os seguintes logs 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 é sugerido;
  • nesse caso, utiliza-se o link [18],
  • em [19], opta-se por adicionar um adaptador para o servidor Glassfish,
  • que é baixado e, de volta à janela [Servers], adiciona-se um novo servidor,
  • desta vez na janela [21], os servidores Glassfish são sugeridos,
  • na janela [22], seleciona-se o servidor Glassfish 3.1.2 baixado com o NetBeans,
  • em [23], indica-se a pasta de instalação do Glassfish 3.1.2 (preste atenção ao caminho indicado em [24]),
  • se não houver um servidor Glassfish, use o botão [25],
  • em [26], o assistente solicita a senha do administrador do servidor Glassfish. Para uma primeira instalação, normalmente é adminadmin,
  • quando o assistente for concluído, na janela [Servers], o servidor Glassfish aparecerá como [27],
  • em [28], ao iniciá-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 acessar as propriedades do servidor Glassfish, clica-se duas vezes nele na janela [Servers],
  • aparece a janela [20], na qual seguimos o link [Runtime Environment],
  • em [31], vamos substituir o JRE usado por padrão por um JDK. Para isso, usamos 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 for concluído, reiniciamos o [Glassfish] e o [39],
  • no [40], ele é iniciado,
  • no [41], a estrutura do servidor,
  • em [42], acessa-se os logs 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 pacote de softwares para desenvolvimento no PHP / MySQL / Apache em uma máquina Windows. Vamos utilizá-lo exclusivamente para o SGBD e o MySQL.

  • no site do [WampServer] [1], escolha a versão adequada [2],
  • o executável baixado é um instalador. Várias informações são solicitadas durante a instalação. Elas não dizem respeito ao MySQL. Portanto, podem ser ignoradas. A janela [3] é exibida ao final da instalação. Inicie o [WampServer],
  • no [4], o ícone do [WampServer] é instalado na barra de tarefas, na parte inferior direita da tela do [4];
  • ao clicar nele, o menu [5] é exibido. Ele permite gerenciar o servidor Apache e o SGBD MySQL. Para gerenciá-lo, use a opção [PhpPmyAdmin];
  • e, então, é exibida a janela abaixo,

Image

Não entraremos em muitos detalhes sobre o uso do [PhpMyAdmin]. Mostraremos apenas como usá-lo para criar o banco de dados do aplicativo de exemplo deste tutorial.