Uma aplicação Java EE 6 no Eclipse Helios

2 Comments

Há uma semana atrás recebi mais uma solicitação relacionada à Java EE 6, fruto dos artigos que publiquei na Java Magazine, edições 80, 81 e 82. O leitor Carlos fazia o seguinte pedido:

Você poderia me ajudar em como fazer o projeto do SisContrAm que veio na revista Java Magazine numero 82 funcionar no Eclipse? Tentei refazer no Eclipse mas não deu certo.

Em primeiro lugar, gostaria de esclarecer aos que gostam da guerra entre as IDEs Java que não acho que uma IDE seja melhor que a outra. É preciso analisar caso a caso qual é a melhor ferramenta para o momento. Durante a escrita da primeira parte da série sobre Java EE 6 na Java Magazine, o NetBeans encontrava-se mais bem integrado com o GlassFish, enquanto o Eclipse não estava ainda pronto para atender às necessidades. Com o lançamento de novas versões, como veremos neste post, o Eclipse passou a atender também os requisitos para o desenvolvimento de uma aplicação Java EE 6 no GlassFish.

Sem mais delongas, vamos começar as instruções para a implantação do projeto SisContrAm, distribuído como anexo a cada um dos artigos que citei anteriormente, utilizando o Eclipse Helios e o GlassFish V3. Em primeiro lugar, estas duas ferramentas devem ser instaladas, sendo que na página de downloads do Eclipse deve ser obtida a versão Eclipse IDE for Java EE Developers (205 MB) mais recente (codnome Helios). No Linux (32 bits), por exemplo, o arquivo copiado chama-se eclipse-jee-helios-SR1-linux-gtk.tar.gz.

Instaladas as duas ferramentas faremos sua integração de acordo com as instruções do blog The Aquarium:

  1. Abra o Eclipse;
  2. Se sua rede utiliza proxy, clique em Window > Preferences, selecione General > Network Connections e configure-o;
  3. Clique em Help > Install New Software. Na janela que se abrir, desmarque o item Group items by category;
  4. Clique no botão Add…, preencha o campo Name com GlassFish Plugin e Location com http://download.java.net/glassfish/eclipse/helios. Clique OK para adicionar o repositório de atualizações;
  5. Aguarde que os itens disponíveis apareçam na lista. Selecione o item Oracle GlassFish Server Tools, prossiga com o assistente clicando em Next duas vezes, aceite o contrato do software a ser instalado (se, após lê-lo você concordar, é claro) e clique Finish para instalar as ferramentas do GlassFish no Eclipse. Se durante a instalação o Eclipse pedir confirmação para instalar pacotes não assinados, confirme (novamente, se você concordar);
  6. Ao final da instalação, reinicie o Eclipse.

Reiniciado o Eclipse, vá até a view Servers (se ela já não estiver aberta na parte inferior da tela, clique em Window > Show View > Other… e escolha Server > Servers). Clique com o botão direito do mouse na área vazia e, em seguida, em New > Server. A janela mostrada na figura abaixo será aberta. Dentro da pasta GlassFish, escolha a opção GlassFish Server Open Source Edition 3 (Java EE 6) e clique Next.

A segunda tela do assistente para criação do servidor dentro do Eclipse é mostrada na figura a seguir. Nesta tela, informe o diretório do servidor GlassFish clicando no botão Browse… e apontando para o diretório glassfish que fica dentro da pasta criada pela instalação do servidor. Veja na figura que em meu sistema instalei o GlassFish na pasta /home/vitor/Software/glassfish-3.0.1/ e, portanto, o campo Application Server Directory foi preenchido com /home/vitor/Software/glassfish-3.0.1/glassfish.

Clique Next mais uma vez e, na tela seguinte do assistente, preencha apenas o campo Administrative Password com a senha que você configurou para o usuário admin durante a instalação do GlassFish. Caso você tenha aceitado o valor default durante a instalação, preencha adminadmin, que é a senha padrão. Clique Finish para aceitar os demais valores já preenchido pelo Eclipse e, finalmente, configurar o servidor dentro da IDE.

Estamos agora prontos para criar nosso projeto dentro do Eclipse. Clique em File > New > Enterprise Application Project, preencha SisContrAm como Project name e mantenha os demais valores default, como mostra a figura abaixo.

Clique Next, em seguida New Module…, marcando somente os itens EJB module e Web module para criar os projetos que compõem a aplicação. De volta ao assistente para criação do novo projeto, marque a opção Generate application.xml deployment descriptor e clique em Finsih.

Neste momento, podemos testar se a integração entre Eclipse e GlassFish funciona. Porém, o Eclipse não permite implantação de aplicações Java EE 6 sem ao menos um EJB. Crie, então, um EJB de testes, vazio, clicando com o botão direito em SisContrAmEJB/ejbModule, escolhendo a opção New > Session Bean (EJB 3.x), preenchendo teste como Java package e TesteBean como Class name e clicando em Finish.

Clique, então, com o botão direito no projeto SisContrAm, escolha Run As > Run on Server, selecione o servidor criado anteriormente, marque a opção Always use this server when running this project se você quiser utilizar sempre o mesmo servidor e clique em Finish. As views Console e Servers irão mostrar o andamento da implantação. Ao final, com seu navegador Internet favorito, abra o endereço http://localhost:8080/SisContrAmWeb/. Se tudo correu bem, você deverá ver a página Hello, World! criada automaticamente pelo Eclipse em seu projeto.

De posse dos arquivos SisContrAm-parte03.zip e ContadorWeb.zip disponíveis junto ao artigo citado pelo leitor em sua solicitação, descompacte-os e copie alguns itens dos projetos NetBeans para o projeto Eclipse que acabamos de criar. A tabela abaixo indica o que deve ser copiado, onde se encontram nos projetos NetBeans distribuídos com a matéria e onde eles devem ser colocados no projeto Eclipse. Usando o gerenciador de arquivos do seu sistema operacional (ex.: utilizei o Nautilus em meu Ubuntu Linux), selecione os arquivos e copie-os com Ctrl+C, em seguida vá ao Eclipse, selecione a pasta indicada na tabela abaixo e cole os arquivos com Ctrl+V. Note que o último item da lista vale somente para o código-fonte da parte 3 da série de artigos. Nas partes 1 e 2 o código-fonte do SisContrAm não incluiu o projeto paralelo ContadorWeb.

De onde copiar O que copiar Para onde copiar
SisContrAm/SisContrAm-ejb/src/conf/ Os arquivos beans.xml e persistence.xml SisContrAmEJB/ejbModule/META-INF/
SisContrAm/SisContrAm-ejb/src/java/ A pasta br SisContrAmEJB/ejbModule/
SisContrAm/SisContrAm-war/src/java/ A pasta br SisContrAmEJB/ejbModule/
SisContrAm/SisContrAm-war/web/ Tudo SisContrAmWeb/WebContent/
ContadorWeb/dist/ O arquivo ContadorWeb.jar SisContrAmWeb/WebContent/WEB-INF/lib/

Isso conclui a "conversão" do projeto NetBeans para o Eclipse e se for feita a implantação da aplicação (com as instruções que demos anteriormente), será possível já ver a tela inicial do SisContrAm. No entanto, para que funcione corretamente, é preciso criar a conexão para o banco de dados e o realm de autenticação de usuários no servidor GlassFish. Este último foi explicado no artigo da edição 82 (parte 3 da série sobre Java EE 6) e basta seguir as instruções que encontram-se ali. Já a conexão com o banco não foi explicada nos artigos porque foi criada automaticamente pelo NetBeans. Explicaremos, portanto, a seguir, como criá-la manualmente utilizando o Web Console do GlassFish.

No Eclipse, abra novamente a view Servers, clique com o botão direito no servidor GlassFish e escolha GlassFish > View Admin Console. O Web Console se abrirá dentro do navegador HTML interno do Eclipse. Na árvore de itens de configuração à esquerda, selecione Resources/JDBC/Connection Pools e clique em New…. Utilizando os valores contidos no arquivo SisContrAm/SisContrAm-ejb/setup/sun-resources.xml1 do projeto do NetBeans, criaremos uma nova conexão ao banco de dados, como mostra a figura a seguir:

Clique em Next para ir à segunda tela do assistente de criação de nova conexão. Nesta tela, desça até a tabela Additional Properties e clique no primeiro botão para marcar todas as propriedades. Em seguida, localize as propriedades exibidas na figura abaixo e desmarque-as, clicando em Delete Properties para excluir as demais propriedades que ficaram marcadas. Em seguida, preencha o formulário com os dados que também mostramos na figura.

Para que você possa copiar e colar estes valores, mostramo-los também na tabela abaixo. Note que eles também podem ser vistos no arquivo SisContrAmEJB/ejbModule/META-INF/persistence.xml em seu projeto Eclipse:

Propriedade Valor
DatabaseName SisContrAm
Password SisContrAm
PortNumber 3306
ServerName localhost
URL jdbc:mysql://localhost:3306/SisContrAm
User SisContrAm

O leitor atento já entendeu que a conexão que estamos criando é para um banco de dados criado em um servidor MySQL na máquina local. Portanto, é preciso que: (1) o MySQL esteja instalado (e rodando) na mesma máquina do GlassFish; (2) exista um banco de dados chamado SisContrAm no servidor MySQL; (3) exista um usuário SisContrAm com senha SisContrAm no servidor MySQL; e (4) o usuário SisContrAm tenha privilégios totais sobre o banco de dados homônimo.

Após preencher as propriedades, portanto, clique em Finish e o Web Console voltará à lista de conexões, listando também a nova conexão criada. Clique no nome da nossa nova conexão para abri-la novamente e, se tudo estiver corretamente instalado e configurado como explicamos acima, um click no botão Ping irá mostrar a mensagem Ping Succeeded, o que confirma que está tudo certo até o momento.

Para finalizar, criaremos o data source: na árvore à esquerda, clique em Resources/JDBC/JDBC Resources e em seguida em New…. Preencha o campo JNDI Name com SisContrAm-ds e escolha a conexão que apenas criamos no campo Pool Name, como mostra a figura a seguir. Clique OK para criar a fonte de dados que já encontra-se configurada em SisContrAmEJB/ejbModule/META-INF/persistence.xml no projeto.

E isso conclui todos os passos necessários para a execução do SisContrAm, assumindo que o leitor também seguiu os passos para criação do realm de segurança como explicado na parte 3 da série sobre Java EE 6, publicada na edição 82 de Java Magazine. A partir deste exemplo, é possível utilizar o conhecimento adquirido nesta série de artigos para começar a desenvolver aplicações Java EE 6 agora também usando o Eclipse como IDE.

Bons estudos!


1 Infelizmente, o arquivo SisContrAm/SisContrAm-ejb/setup/sun-resources.xml do projeto do NetBeans foi distribuído com um erro. A tag <jdbc-connection-pool /> possui o atributo name="mysql_SisContrAm_rootPool". O valor correto deste atributo deveria ser name="mysql_SisContrAm_SisContrAmPool".

2 thoughts on “Uma aplicação Java EE 6 no Eclipse Helios

  1. Boa tarde, Vitor

    Você teria mais material sobre JAAS?

    Na sua opinião qual implementa melhor a parte de segurança de um aplicação web
    Spring security 3 ou JAAS?

    Ótimo post,

    Att

    • Olá Thiago, obrigado!

      Infelizmente não tenho nenhum outro material sobre JAAS e nunca experimentei o Spring Security 3, então não saberia comparar.

      Num projeto pessoal em que eu trabalho quando tenho tempo eu queria implementar segurança com o Apache Shiro (http://shiro.apache.org/) para experimentá-lo. Me parece que ele é mais flexível do que o JAAS, se eu entendi bem ele permite que os papéis (roles) sejam dinâmicos, o que será necessário no meu projeto.

      Boa programação!
      – Vítor Souza

Leave a Reply

Your email address will not be published. Required fields are marked *

*

code