Академический Документы
Профессиональный Документы
Культура Документы
br
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 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.
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.
www.devmedia.com.br/articles/viewcomp.asp?comp=25251