Anda di halaman 1dari 9

www.de vm e dia.com .

br

[ve rso para im pre sso]

Criando e configurando um projeto Web - JSF 2, Primefaces 3 e CDI


Veja neste artigo como criar um projeto web com JSF2, PrimeFaces 3 e CDI, entendo detalhadamente cada passo at a obteno do resultado desejado. INTRODUO
O objetivo deste artigo explicar, de forma prtica, como criar e configurar um projeto Web utilizando as tecnologias JSF 2, PrimeFaces 3 e CDI. Neste tutorial, ser utilizado o framework JBOSS Weld. Weld a implementao de referncia (RI) para a JSR-299 da plataforma Java EE(CDI). O JSR 299 especifica o padro de Java Contexts and Dependency Injection, que conhecido como CDI. CDI o padro Java para injeo de dependncia e gerenciamento de ciclo de vida contextual que integra de forma limpa e simples com a plataforma Java EE. Qualquer servidor de aplicao Java EE 6 fornece suporte para JSR-299 . (referncia: seamframework.org/Weld).

PROBLEMA
Hoje, existe uma gama de tecnologias (frameworks) disponveis no mercado para projetos Java EE (Java Web), o que no torna trivial decidir qual framework utilizar. Aps analisar algumas opes, percebe-se que uma boa alternativa iniciar um projeto Java Web de forma simples e, paulatinamente, fazer as configuraes necessrias. As tecnologias deste tutorial (projeto) foram escolhidas visando a criao de um site, sendo assim, deve ser leve e executar em qualquer Servlet Conteiner (Tomcat, Jetty, etc).

CRIANDO O PROJETO
No projeto ser utilizada a IDE Eclipse Indigo 3.7 e o Servlet Conteiner Tomcat 7. Para iniciar um projeto no Eclipse. Abra o Eclipse (como administrador) faa os seguintes passos: 1. Clique com o boto direito na aba Project Explorer e selecione New -> Project. 2. Na janela Wizard, selecione a opo Web -> Dynamic Web Project, conforme figura 1.

Figura 1: Tela New Project do Eclipse 1. Clique em Next e faa as configuraes de acordo com a figura 2.

Figura 2: Tela Dynamic Web Project A opo Dynamic web module version, configura o projeto Web para suportar a verso 3.0 do Java Servlet. Essa verso requer a verso 1.6 do Java. Em Configuration, a opo JavaServer Faces v2.0 Project habilita o projeto com JSF capabilities, ou seja, o projeto j configurado para o JSF 2.0, criando o arquivo faces-config.xml. 2. Clique em Next e em Next novamente at a tela Web Module e marque a opo Generate web.xml deployment descriptor (figura 3) e clique em Next.

Figura 3: Tela Web Module Marcar a opo Generate web.xml deployment descriptor significa que arquivo web.xml, que contm a configurao do projeto Java Web, deve ser criado. 3. Na tela JSF Capabilities, configure de acordo com a figura 4 e clique em Finish.

Figura 4: Tela JSF Capabilities O projeto ser criado com os arquivos web.xml e faces-config.xml na pasta WEB-INF . A configurao do Servlet do JSF ser adicionada ao web.xml. Na opo JSF Implementation

Library , escolhemos Disable Library Configuration porque posteriormente ser adicionada a biblioteca de implementao. Precisamos editar o arquivo web.xml a fim de acertar a configurao do JSF e definir a pgina padro do projeto. Edite o arquivo de acordo com listagem 1: Listagem1: Cdigo do arquivo web.xml

t u t o r i a l W e b i n d e x . j s f

F a c e sS e r v l e t j a v a x . f a c e s . w e b a p p . F a c e s S e r v l e t 1 F a c e sS e r v l e t * . j s f

Agora, faa o download da ltima verso do jar do JSF . Acesse http://javaserverfaces.java.net/ e baixe o arquivo javax.faces.-2.1.10.jar. Copie o arquivo para a pasta WEB-INF/lib do projeto. O prximo passo criar a pgina xhtml. Clique com o boto direito na pasta WebContent e selecione New -> XHTML Page. D o nome index.xhtml e clique em Finish. No arquivo index.xhtml, ser declarado o doctype, adicionados os namespaces do JSF e bem como mensagem. Escreva o seguinte cdigo no arquivo: Listagem 2: Cdigo do arquivo index.xhtml

# { h e l l o . m e s s a g e }

Por ltimo, deve-se criar o ManagedBean responsvel pela comunicao com a pgina index.xhtml. Primeiro, cria-se o pacote. Clique com o boto direito na pasta src do projeto e selecione New -> Package. D o nome br.com.tutorial.controller ao pacote e clique em Finsh. Crie uma nova classe com o nome Hello.java e adicione o cdigo da listagem 3. Listagem 3: Cdigo de implementao da classe Hello.java
p a c k a g eb r . c o m . t u t o r i a l . c o n t r o l l e r ; i m p o r tj a v a x . a n n o t a t i o n . P o s t C o n s t r u c t ; i m p o r tj a v a x . f a c e s . b e a n . M a n a g e d B e a n ; i m p o r tj a v a x . f a c e s . b e a n . R e q u e s t S c o p e d ; @ R e q u e s t S c o p e d @ M a n a g e d B e a n p u b l i cc l a s sH e l l o{ @ P o s t C o n s t r u c t p u b l i cv o i di n i t ( ) { S y s t e m . o u t . p r i n t l n ( "B e a ne x e c u t a d o !" ) ; } p u b l i cS t r i n gg e t M e s s a g e ( ) { r e t u r n" H e l l oW o r l dJ S F ! " ; } }

A anotao @ManagedBean do JSF, permite acessar por EL (Expression Language) o Bean na pgina. Este acesso feito atravs do cdigo #{hello.message} da pgina index.xhtml e, desta

forma, o retorno do mtodo getMessage exibido na pgina. A anotao @RequestScoped define o ciclo de vida do Bean que, neste caso, o request da requisio. O @RequestScoped o escopo padro do JSF 2, ou seja, quando um escopo no definido, a API do JSF 2 assume o escopo de request.

TOMCAT 7
Neste momento j possvel realizar o primeiro teste a fim de confirmar se a configurao do JSF no projeto est correta. Para usar CDI precisamos de um servidor Java EE6. Neste tutorial a opo foi o Tomcat 7. Acesse http://tomcat.apache.org/download-70.cgi e faa download do arquivo apache-tomcat7.0.29.zip. Se desejar, pode optar pelo instalador. Extraia o arquivo na mquina em um local de sua preferncia. Na aba Server, clique em new Server wizard. Selecione a pasta Apache e a opo Tomcat v7.0 Server, conforme figura 5.

Figura 5: Tela Define a New Server Clique em Next e selecione o diretrio onde instalou o Tomcat (Veja a figura 6). Clique em Next novamente.

Figura 6: Tela Tomcat Server Na prxima tela, clique em Add All >> para adicionar o projeto ao Tomcat e clique em Finish. Inicie (Start) o Tomcat e acesse url http://localhost:8080/tutorialWeb/ em qualquer navegador. A mensagem Hello World JSF ! ser exibida.

PRIMEFACES 3
Para adicionar o PrimeFaces 3 ao projeto, precisa-se apenas baixar o arquivo jar e adicionar no ClassPath da aplicao. Faa download do arquivo primefaces-3.3.1.jar no site http://primefaces.org/downloads.html. Na data de criao deste artigo, essa era a ltima verso do PrimeFaces. Copie o arquivo jar do PrimeFaces para pasta WEB-INF/lib do projeto. Edite o arquivo index.xhtml e adicione o namespace do PrimeFaces 3, definindo assim a varivel p. Adicione a tag Painel e Button (Ver listagem 3). Listagem 3: Cdigo PrimeFaces no arquivo ndex.xhtml

# { h e l l o . m e s s a g e }

J possvel testar o projeto com PrimeFaces 3. Reinicie o Tomcat e acesse http://localhost:8080/tutorialWeb/. O navegador deve exibir a pgina de acordo com a figura 7.

Figura 7: Tela do projeto com Primefaces 3

CDI com JBOSS Weld


Para fazer uso do CDI em um Servlet Conteiner, precisa-se de uma API de CDI. Neste projeto, ser utilizado o Framework JBOSS Weld. Acesse http://seamframework.org/Weld/WeldDistributionDownloads e baixe a verso final do Framework Weld 1.1.8.Final. Esta a ltima verso na data deste artigo. No arquivo zip, acesse a pasta weld-1.1.8.Final.zip\weld-1.1.8.Final\artifacts\weld e copie o arquivo weld-servlet.jar para a pasta WEB-INF/lib do projeto. Para configurar, clique com o boto direito no projeto e selecione Properties. Selecione Project Facets e marque a opo CDI(Contexts and Dependency Injectioin) e clique em OK, confirme figura 8.

Figura 8: Tela Properties for tutorialWeb O arquivo beans.xml ser criado na pasta WEB-INF . Em seguida, necessrio modificar o arquivo web.xml e adicionar o listener do Weld. O arquivo deve ficar conforme a listagem 4. Listagem 4: Listener do Weld adicionado no web.xml

t u t o r i a l W e b i n d e x . j s f

F a c e sS e r v l e t

j a v a x . f a c e s . w e b a p p . F a c e s S e r v l e t 1 F a c e sS e r v l e t * . j s f

o r g . j b o s s . w e l d . e n v i r o n m e n t . s e r v l e t . L i s t e n e r

Por fim, vamos modifica-se a classe Hello.java para injetar o ManagedBean atravs das anotations do Weld, substituindo as do JSF . O arquivo Hello.java deve ficar de acordo com o cdigo da Listagem 5. Listagem 5: Cdigo da Classe Hello.java
p a c k a g eb r . c o m . t u t o r i a l . c o n t r o l l e r ; i m p o r tj a v a x . a n n o t a t i o n . P o s t C o n s t r u c t ; i m p o r tj a v a x . e n t e r p r i s e . c o n t e x t . R e q u e s t S c o p e d ; i m p o r tj a v a x . i n j e c t . N a m e d ; @ N a m e d @ R e q u e s t S c o p e d p u b l i cc l a s sH e l l o{ @ P o s t C o n s t r u c t p u b l i cv o i di n i t ( ) { S y s t e m . o u t . p r i n t l n ( "B e a ne x e c u t a d o !" ) ; } p u b l i cS t r i n gg e t M e s s a g e ( ) { r e t u r n" H e l l oW o r l dJ S F ! " ; } }

A anotao @Named transforma a classe em um ManagedBean e pode ser acessada utilizando EL (Expression Language), como no presente exemplo, #{hello.message}. Reinicie o Tomcat e acesse novamente a aplicao atravs da url http://localhost:8080/tutorialWeb/. A tela exibida como podemos observar na figura 9. Porm, utilizando CDI com o Weld.

Figura 9: Tela da aplicao em execuo

CONCLUSO
Aps concluir a aplicao, foi possvel observar a facilidade de utilizar injeo de dependncia com o JBOSS Weld. Pode-se perceber que foi simples configurar a aplicao para o Tomcat. A injeo foi feita atravs de anotaes, sendo possvel perceber que factvel configurar toda a camada de negcio utilizando CDI. A configurao do JSF foi facilmente executada, sendo necessrio adicionar somente um jar e declarar o servlet no web.xml. O PrimeFaces 3 se mostrou ainda mais fcil, pois foi adicionado o jar e bastou declarar o namespace na pgina para se utilizada. Por fim, o JBOSS Weld demonstrou ser uma excelente opo para diminuir o acoplamento e realizar injeo de dependncia.

por Filipe Souza

www.devmedia.com.br/articles/viewcomp.asp?comp=25251

Anda mungkin juga menyukai