Java Magazine edição 51
Esse artigo faz parte da revista Java Magazine edição 51. Clique aqui para ler todos os artigos desta edição

Web tools platform 2.0      

Desenvolvendo aplicações web e Java EE com o Eclipse

 

Na Edição 47 apresentamos a nova versão 3.3 do Eclipse, também mencionando vários outros projetos da Eclipse Software Foundation (ESF) que fizeram parte do release “Europa” (O Europa foi discutido também na edição). Embora o IDE básico do Eclipse contenha as ferramentas mais essenciais para qualquer projeto (editor, compilador etc.) – a crescente riqueza da plataforma Java torna importante o uso de ferramentas mais especializadas. Isso é especialmente verdadeiro para projetos Java EE, os quais demandam muitas atividades além de programação pura: editar páginas web estáticas e dinâmicas, trabalhar com XML, mapear objetos para tabelas, configurar descritores de deployment, fazer testes em servidores de aplicações, e assim por diante. Por isso, o complemento mais fundamental de qualquer IDE Java é o suporte a Java EE. Neste artigo, apresentaremos o WTP 2.0, o componente fundamental de suporte a Java EE para o Eclipse 3.3. Note que este artigo não pretende ensinar técnicas ou APIs do Java EE, nem as especificidades de servidores Java EE. São assuntos já cobertos com freqüência em vários artigos da Java Magazine. Vamos focar no ferramental do WTP e no uso prático das APIs e do servidor. O leitor que já tem alguma familiaridade conceitual com Java EE (mas não necessariamente experiência) será capaz de acompanhar este artigo sem problemas.

 

Ambiente e instalação

Alguns IDEs já trazem funcionalidades Java EE no produto básico, e o Eclipse costumava ser criticado por não ser assim. Mas isso é apenas um efeito da estrutura extremamente modular dos projetos da Fundação Eclipse. O verdadeiro problema é que a ESF, tradicionalmente, não disponibilizava distribuições orientadas ao usuário final. Isso começou a melhorar com o Eclipse 3.2 (Callisto), cujo Update Manager permite começar com uma instalação básica, selecionar componentes que sabemos que precisamos, e clicar em Select Required para marcar todos os subcomponentes e dependências. Com o Eclipse 3.3 e o Europa, temos uma nova facilidade: a Fundação Eclipse criou uma série de pacotes padronizados, para os conjuntos de funcionalidades mais populares (essas distribuições são detalhadas no artigo de Fernando Lozano, na Edição 50). No caso de desenvolvimento Java EE, você só precisa ir em eclipse.org/downloads e escolher a opção Eclipse IDE for Java EE Developers. Isso o conduzirá a um download único de 125Mb. Ao leitor que ainda não tem familiaridade com o Eclipse ou com o WTP, recomendamos este download para acompanhar o presente artigo. Existem também (como já existiam antes) várias distribuições de terceiros, mas não há dúvida que as distribuições oficiais da ESF contribuirão para melhorar a reputação do Eclipse quanto à facilidade de instalação.

 

Escolhendo um servidor Java EE

Precisaremos também de um servidor Java EE para exercitar o WTP. O primeiro exemplo só utiliza tecnologias web e poderá rodar em containers web como o Tomcat. Já o segundo utiliza EJB, exigindo portanto um container Java EE completo, como JBoss, GlassFish etc. Uma vez instalado o servidor de sua preferência, você deve configurar o Eclipse para utilizá-lo. Para fazer isso, vá em Window|Preferences>Server>Installed Runtimes (Figura 1) e escolha o tipo e a versão de servidor que você quer usar. Este artigo utilizará novos recursos do Java EE 5, portanto, é preciso escolher um servidor recente que tenha este suporte. Escolhi o Glassfish por ser um produto open source e certificado Java EE 5. (Veja o quadro “Servidores suportados pelo WTP”, especialmente se o seu servidor favorito não aparecer inicialmente na lista dos suportados, o que é o caso do Glassfish.)

Minha experiência com WTP e Glassfish foi excelente, para minha surpresa, pois o adaptador do Glassfish para WTP é bem recente (usei a v1.0.1) e a IBM (a principal força por trás dos principais projetos da ESF – incluindo o WTP) e Sun (Glassfish) não são lá grandes parceiros quando se trata de IDEs. Só é uma pena observar que o adaptador do Glassfish não poderá ser incluído nos downloads do WTP ou nas distribuições de IDE da ESF, pois este adaptador usa a licença CDDL da Sun; por isso é provável que será sempre necessário instalá-lo à parte (a não ser que a licença seja alterada, é claro).

 

imagem

Figura 1. Configuração do “Server Runtime” para o servidor Java EE utilizado.

 

Criando um projeto web

Nosso primeiro exercício com o WTP será criar uma aplicação web; simples, porém moderna, usando a JavaServer Faces (JSF). Mesmo que você já tenha familiaridade com aplicações web, JSF e versões anteriores do WTP, o exemplo será útil para investigar características do WTP. Acione New|Project>Web>Dynamic Web Project e na primeira página do assistente, faça Project name=“TesteWeb”, Target runtime=<SEU runtime Java> e Configurations=JavaServer Faces 1.2 Project. Na página seguinte, você poderá ver (e se quiser, modificar) as configurações do projeto. A Figura 2 mostra esta página.

 

imagem

Figura 2. Detalhamento dos facets de um projeto do WTP.

 

Note que o WTP chama essas configurações de Facets (“facetas”). É importante entender este conceito do WTP.  Um projeto contém uma coleção de facets, que podem ser descritas como “suporte para alguma tecnologia específica”. Por exemplo, “JavaServer Faces” é um facet, sendo que existem duas versões dela, para JSF 1.1 e 1.2. Ao selecionar um facet num projeto, o WTP automatiza tarefas como a configuração do classpath do projeto, a geração de artefatos de deployment (como os arquivos web.xml e faces-config.xml) e o funcionamento de etapas especiais de edição, compilação, validação e deployment. Por exemplo, o WTP saberá editar o faces-config.xml com um editor visual customizado para os recursos do JSF 1.2. A Tabela 1 detalha os facets que são suportados pelo WTP 2.0, incluindo as versões suportadas de cada um, correspondendo às versões das APIs ou especificações correspondentes. (Por exemplo, “Dynamic Web Module 2.5” significa “aplicação web utilizando Servlet 2.5 (JSR-154 MR2), JSP 2.1 (JSR-245) e JSTL 1.2 (JSR-52 MR2)”. Ao combinar facets, você deve respeitar as dependências e compatibilidade entre elas: por exemplo, o JSF1.2 exige Dynamic Web Module 2.5 ou superior. Não se preocupe com isso, pois se fizer seleções erradas, estas serão detectadas e proibidas pela página de configuração de facets. Note também que as versões indicadas geralmente significam “igual ou maior que”. Por exemplo, não há uma facet “Java 6.0”, mas você pode usar a facet “Java 5.0” com um runtime Java SE 6, sem problemas. No assistente de criação de projetos, a seleção de facets já terá efeitos visíveis: a última página é a JSF Capabilities (Figura 3), que permite configurar de forma ainda mais refinada as opções específicas a esta facet do projeto.

 

imagem

Figura 3. Configuração do facet JSF do projeto.

 

A opção mais importante nesta página é JSF Libraries: escolha Server supported JSF Implementation. Isso porque vamos usar um servidor Java EE 5, que já possui o runtime JSF 1.2 integrado. Assim você evita inchar o WAR do projeto com os JARs da JSF, algo que só seria necessário para um projeto destinado a servidores J2EE 1.4. Para mais detalhes sobre as configurações de projetos do WTP, que também podem ser modificadas após a criação inicial do projeto, veja o quadro “Configurações de projetos do WTP”.

 

Deploy e execução

Criado o projeto, faremos um teste mínimo de deployment. Primeiro, no diretório WebContent, use New>Other>Web>JSP para criar um arquivo index.jsp contendo uma mensagem qualquer (“Alô, mundo!” não seria má idéia). Agora selecione a view Servers – que deverá estar disponível, pois normalmente o WTP ativa a perspectiva “Java EE” ao criar um projeto. Comande New>Server, selecione o tipo de servidor utilizado (ex.: Glassfish / Glassfish v2 JavaEE 5), passe pela próxima página aceitando os defaults (a não ser que você tenha instalado o servidor com valores não-default para configurações como porta HTTP e login de administrador), e observe a última página do assistente ( ...

Quer ler esse conteúdo completo? Tenha acesso completo