Olá desenvolvedores, neste tutorial criaremos o primeiro projeto JSF – JavaServer Faces. O JSF é um framework MVC – Model-View-Controller, orientado a componentes para o desenvolvimento de interfaces de usuários de forma fácil. Assim sendo, a programação orientada a componentes e dirigida a eventos que privilegiam a abstração de detalhes da interface compreende um dos seus maiores atrativos.

Acessando os tutoriais anteriores você poderá saber mais sobre o que é o JavaServer Faces bem como acerca dos seus principais componentes e bibliotecas. E você pode começar por aqui “JSF – JAVASERVER FACES: O QUE É”. Agora vamos nos concentrar na criação do nosso primeiro projeto.

PRIMEIRO PROJETO

Para criar o primeiro projeto JSF utilizaremos o controlador de dependências de bibliotecas Maven, que foi criado pela Apache Foundation.

O objetivo primeiro do controlador Maven é fornecer ao desenvolvedor um conjunto completo de desenvolvimento com pouco esforço. Em outras palavras significa que com ele somos dispensados de fazer manualmente o download de pacotes e dependências essenciais para o funcionamento do projeto.

Para criar o primeiro projeto na barra de menu clique em [File >> New >> Other…] No campo pesquisa busque por Maven, selecione a opção [Maven Project >> Next]. Na próxima tela verifique se a opção “Use default Workspace location” está marcada, se não estiver marque e clique em [Next >> Next].

Na próxima tela atribua um nome para o projeto, como por exemplo, “meuprimeiroprojetojsf”. Em package, observe a nomenclatura padrão que começa com br.com e o nome_escolhido. Você pode substituir nome_escolhido, pelo nome da empresa, seu nome ou do projeto. Clique em [Finish].

CONFIGURANDO O PROJETO

Na estrutura do projeto exclua a classe “App.java” localizada no package br.com.cursojsf, da pasta src/main/java. É no package “br.com.cursojsf” que ficarão as classes (Back-End). Proceda da mesma forma com a classe de teste da pasta src/test/java. E dentro da pasta src – source ficarão as páginas web.

Embora seja um projeto Java o projeto Maven neste momento ainda não está configurado para ser entendido pelo servidor como um projeto web. Dessa forma ele nem mesmo existe para o servidor Apache Tomcat

Para que o projeto “meuprimeiroprojetojsf” se torne um projeto web proceda da seguinte forma, clique sobre ele com o botão direito do mouse >> properties.  Na tela que irá se abrir clique sobre a opção de menu “Project Facets” e depois em “Convert to faceted form…”. Agora em “Project Facet” ative as opções “Dynamic Wev Module”, “Java”, “JavaScript”, “JavaServer Faces”, “JPA”.

Antes de escolher a versão do Apache Tomcat clique em “Further configuration available…” Em “Type” desabilite a configuração de biblioteca [“Disable Library Configuration” >> Next]. Ative a opção que permite gerar o arquivo XML, [“Generate web.xml deployment descriptor” >> Next >> Ok].

Na aba Runtines ative a opção que contém a versão do servidor Apache Tomcat instalada >> Apply >> Ok.

Após estas alterações algumas mudanças poderão ser observadas no projeto como o arquivo persistence.xml que foi adicionado a pasta src/main/java. Bem como também foi criada a pasta WebContent onde configuraremos as páginas.

ADICIONANDO A DEPENDÊNCIA JSF-IMPL

O arquivo pom.xml é o responsável por fazer o download das dependências e tudo o mais que o projeto precisar. Clicando sobre o arquivo e depois na aba pom.xml, será exibido o local onde adicionaremos as dependências. Precisaremos inicialmente de duas, a jsf-impl (implementação) e jsf-api.

Assim, vamos fazer o download da dependência jsf-impl. Para obter o código referente a dependência jsf-impl clique neste link para ser direcionado para o repositório do Maven. Na aba “Maven” selecione todo o código, copie e cole no repositório de dependências. Cole o código sempre após alguma tag </dependency> e dentro do par de tags <dependencies></dependencies>. Clique em salvar.

Agora selecione o projeto com o botão direito do mouse >> Maven >> Update Project, marque todas as opções >> OK.

ADICIONANDO A DEPENDÊNCIA JSF-API

Do mesmo modo para obter o código referente a dependência jsf-api clique neste link para ser direcionado para o repositório do Maven. Na aba “Maven” selecione todo o código, e o copie e cole no repositório de dependências. Atente-se para a versão que de ser compatível com a jsf-impl.

E tal como procedeu para atualizar para a dependência jsf-impl, faça com o jsf-api. Selecione o projeto com o botão direito do mouse >> Maven >> Update Project, marque todas as opções >> OK.

CORRIGINDO ERRO DE INCOMPATIBILIDADE COM O JAVA

Se após a atualização o projeto apresentar erro, entre as muitas possibilidades a incompatibilidade com a versão do Java instalada, pode ser uma delas. Neste caso, clique com o botão direito sobre o projeto >> Properties. No menu na barra lateral a esquerda clique sobre “Java Compiler”, observe que há um alerta. O projeto está tentando compilar com o Java 1.5.

Clique em ‘Java Build Path’. Na aba Libraries selecione “JRE System Library” [J2SE-1.5] >> Edit. Selecione a opção Alternate JRE >> Finish.

Novamente clique com o botão direito sobre o projeto >> Properties e no menu na barra lateral a esquerda clique sobre “Java Compiler”. Selecione a versão correta do Java a 1.7 >> OK >> Yes, e o erro desaparecerá.

CONFIGURANDO O PATH

Clique com o botão direito do mouse sobre o projeto >> Properties. Busque por [Deployment Assembly >> Add]. Na janela “New Assembly Directive”, selecione a opção “Java Build Path Entries” >> Next. Na próxima tela selecione [Maven Dependencies >> Finish]. [Apply >> OK].

Selecione o projeto, na barra de menu em Project clique em Clean… novamente selecione o projeto e clique em OK.

EM POUCAS PALAVRAS

Criamos nosso primeiro projeto JSF com Maven, mas alguns problemas podem ocorrer, e neste caso é precisa avaliar cada caso particularmente. Alguns dos erros apresentados podem ser resolvidos alterando a versão do Maven. Outra forma de resolver é buscar na pasta Maven Dependencies >> jboss-logging o o caminho correto do projeto, como por exemplo, C:\Users\Administrador\.m2 e deletar toda a pasta.

Uma vez deletada toda a pasta, selecione o projeto com o botão direito do mouse >> Maven >> Update Project. Marque a opção “Force Update of Snapshots/Releases” >> Ok.