Instalando uma aplicação Java EE 6 construída com NetBeans

6 Comments

Anteontem, mais um e-mail referente aos artigos sobre Java EE 6, publicados nas edições 80, 81 e 82 da Java Magazine. Desta vez, o pedido era simples e direto:

Poderia descrever um passo a passo para rodar o SisContrAm no IDE NetBens 6.9?

Falaremos, então, sobre como rodar uma aplicação Java EE 6 construída pelo NetBeans por outra pessoa em seu computador utilizando como exemplo o SisContrAm, citado pelo leitor, que foi o exemplo utilizado na série de artigos, um Sistema de Controle de Ambulâncias. Seu download está disponível para assinantes da Java Magazine ou por meio de créditos no portal DevMedia, caso se obtenha o acesso aos artigos que mencionei anteriormente. As instruções trazidas aqui podem servir também para outras aplicações Java EE 6, desde que sejam feitas as devidas adaptações.

Para começar, então, de posse do arquivo SisContrAm.zip que contém o projeto, descompacte-o e coloque o diretório SisContrAm que foi extraído do arquivo em alguma pasta do seu sistema. Um bom local para colocá-lo é a pasta de projetos do NetBeans.

Inicie o NetBeans, clique em File > Open Project…, navegue até a pasta onde você colocou o diretório SisContrAm, selecione-o e clique em Open Project. Neste momento, o NetBeans apresenta a seguinte mensagem:

Clique em Close e siga a instrução dada pelo NetBeans: clique com o botão direito no projeto SisContrAm-war e selecione Resolve Reference Problems…. Veremos que está faltando o arquivo ContadorWeb.jar, que pertence a um outro projeto Java disponibilizado junto ao artigo: o ContadorWeb.

Para solucionar, portanto, obtenha o arquivo ContadorWeb.zip e descompacte-o como fizemos anteriormente com o ZIP do SisContrAm. Em seguida, clique no botão Resolve…, localize o arquivo ContadorWeb.jar dentro do diretório dist da pasta ContadorWeb extraída do arquivo ZIP.

Neste momento, se você executar um Run > Clean and Build Main Project, o projeto deve ser compilado e montado corretamente. Agora falta criar o banco de dados.

O SisContrAm foi configurado para conectar em um banco de dados MySQL com o mesmo nome da aplicação. Isso pode ser visto na configuração do GlassFish no arquivo SisContrAm-ejb/Server Resources/sun-resources.xml:

[cce_java]




[/cce_java]

Portanto, a não ser que você deseje alterar toda essa configuração, crie um banco de dados no MySQL (se você não tiver o MySQL instalado, instale-o) chamado SisContrAm e configure um usuário com login SisContrAm e senha SisContrAm. Ao criar este usuário, não se esqueça de dar a ele privilégios totais no banco de dados SisContrAm.

Por fim, o GlassFish tem que ser capaz de conectar em bancos de dados MySQL. Isso eu já comentei no post Usando MySQL com GlassFishV3: o JAR do MySQL Connector/J deve ser copiado para dentro do GlassFish. Veja o post para mais detalhes.

Não é necessário criar as tabelas do SisContrAm, basta pedir à nossa aplicação que crie-as automaticamente. Abra SisContrAm-ejb/Configuration Files/persistence.xml e no item Table Generation Strategy, escolha Create. Salve o arquivo.

Neste ponto a aplicação já deve estar pronta para ser executada. Porém, e infelizmente só percebi isso ao responder a pergunta do leitor, o arquivo de configuração que mostramos anteriormente contém um erro que impede a implantação do SisContrAm: a tag [cci_java][/cci_java] declara o pool de conexões com o nome [cci_java]mysql_SisContrAm_rootPool[/cci_java]. Em seguida, a tag [cci_java][/cci_java] se refere ao pool pelo nome [cci_java]mysql_SisContrAm_SisContrAmPool[/cci_java]. Tal erro causa uma exceção quando fazemos o deploy da aplicação.

Para corrigi-lo, basta trocar ou o nome do pool de conexão ou a referência a ele na tag do data source. O código abaixo ilustra a segunda opção:

[cce_java][/cce_java]

Após alterar e salvar o arquivo SisContrAm-ejb/Server Resources/sun-resources.xml, clique em Run > Run Main Project e a aplicação se abrirá no navegador Internet. Para utilizá-la, é preciso configurar a autenticação e autorização no servidor de aplicação (como mostra a parte 3 do artigo sobre Java EE 6, edição 82 da Java Magazine) e cadastrar um usuário no banco de dados. A figura abaixo mostra a inserção de um usuário admin com a senha admin que, convertida em MD5, torna-se 21232f297a57a5a743894a0e4a801fc3.

Bons estudos!

6 thoughts on “Instalando uma aplicação Java EE 6 construída com NetBeans

  1. Bom dia, Vitor!

    Segui todos os passos acima, infelizmente não consegui executar, está apresentando o erro abaixo:

    Implantação inicial de SisContrAm até D:\anderson.rodrigues\Documents\NetBeansProjects\SisContrAm\dist\gfdeploy\SisContrAm
    Distribuição inicial do SisContrAm completada
    deploy?path=D:\anderson.rodrigues\Documents\NetBeansProjects\SisContrAm\dist\gfdeploy\SisContrAm&name=SisContrAm&force=true falhou em GlassFish Server 3
    D:\anderson.rodrigues\Documents\NetBeansProjects\SisContrAm\nbproject\build-impl.xml:268: O módulo não foi implementado.
    FALHA NA CONSTRUÇÃO (tempo total: 2 segundos)

    Desde já agradeço a atenção dispensada.

    Grato,
    Anderson Rodrigues

  2. Caros Anderson e Romero,

    Qual é exatamente o problema? Qual é a exceção lançada pelo GlassFish ou NetBeans? Procurem em todos os logs: Console, build do Ant e log do GlassFish. Tem alguma coisa?

    Abraços,
    – Vítor Souza

  3. Olá Vitor.

    Baixei o SisContrAm e rodei no netbeans 7, rodou blz, mas quando tento fazer um Edit para alterar o registro me retorna a seguinte msg: cannot be merged because it has changed or been deleted since it was last read

    Se retiro da entidade a anotação @Version ai funciona.

    Como será que faço para alterar o registro com esta anotação

    • Olá Silas,

      A anotação @Version provê trancamento otimista e este exceção que está aparecendo indica que o objeto que está sendo salvo está desatualizado, como se outro processo tivesse salvo este objeto no banco de dados enquanto você o está manipulando.

      Caso você seja o único a utilizar o SisContrAm isso não deveria acontecer. Verifique o valor do atributo de versão no seu objeto e o valor da coluna no banco de dados e investigue porque o objeto está ficando desatualizado.

      Boa sorte,
      – Vítor Souza

  4. Vítor,

    você precisa melhorar muito nos seus artigos produzidos na JavaMagazine. Descreve muito mal, explicando muito precariamente, de forma extremamente simplória, dificultando muito na hora do “vamoVer” (na prática). Aos trancos e barrancos eu estou conseguindo realizar o SisContrAm. Fica a crítica.

Leave a Reply

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

*

code