Netbeans 6.1, Glassfish v2 e Maven 2

Aqui tenho 2 aplicações web que utilizam uma base comum, e queria que o Spring inicializasse somente uma vez. Como o Spring que gerencia a utilização do Hibernate eu criaria somente um sessionFactory e também unificaria o cache. Procurando na net descobri um artigo onde ensinava a fazer isso, mas eu precisaria empacotar minha aplicação como um ear. Como o Tomcat que eu utilizava atualmente não suporta ears, depois de testar rapidamente JBoss, Geronimo e Glassfish acabei optando pelo Glassfish. Não foi nenhuma pesquisa muito profunda, o Glassfish foi o que eu consegui fazer funcionar mais rapidamente minha aplicação e eu gostei da interface de administração.

Na configuração do Glassfish eu precisei criar o Realm de Segurança (e um sun-web.xml que vai no war para mapear os roles), os DataSources para conexão com o MySQL e configurar o JMS. A vantagem que ele já tem um servidor JMS integrado e quando eu utilizava o Tomcat dependia do ActiveMQ rodando em separado, mais uma razão para eu mudar para um servidor de aplicação.

Daí parti para integrar o Glassfish com o Eclipse, mas o plugin do Glassfish não estava funcionando. Resolvi testar o Netbeans que tem uma ótima integração com o Glassfish (é tudo da Sun :) ). Só precisei instalar os plugins do Maven (dentro dele tem uma opção de instalar plugins) e importar meus projetos foi extremamente fácil.

Agora para fazer o deploy do meu projeto Maven no Glassfish eu não consegui de um jeito bom, estou fazendo pela linha de comando mesmo usando o comando asadmin (criei um shell script pra isso). O Glassfish eu rodo por dentro do Netbeans, perto de onde tem a estrutura do projeto tem uma aba Serviços. Ali tem Servidores e dentro o Glassfish, só clicar com o botão direito e mandar rodar ou parar.

Meu ear ficou com 2 wars dentro e com todos os jars comuns aos dois wars. Cada war tem somente os jars específicos utilizados somente neles. Depois de alguns problemas com classloaders consegui fazer a minha aplicação funcionar. Tive que colocar a opção class-loader delegate=”false” nos meus arquivos sun-web.xml e tomar cuidado para que cada dependência que fosse procurada ou estivesse no mesmo classloader ou no classloader pai. Para saber mais sobre a “hierarquia” de classloaders é só dar uma olhada na documentação do Glassfish.

Fica aqui o relato que talvez ajude alguém, não entrei em muitos detalhes para não ficar muito extenso. Me surpreendi com a qualidade do Glassfish e do Netbeans que não via fazia muito tempo. E pensar que eu odiava servidor da Sun (iPlanet argh!!).

Agosto 22, 2008. Tags: , , . ferramentas, java.

Sem comentários ainda

Seja o primeiro a comentar!

Deixe uma resposta

Você precisa fazer o login para publicar um comentário.

Trackback URL