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. Deixe um comentário.

Encontre bugs no Java com FindBugs

Nem me lembro como ouvi falar do FindBugs, mas agora acho uma ferramenta essencial. O que ele faz é vasculhar todo o seu código e mostrar lugares onde possam existir possíveis bugs. Sabe aqueles lugares que não foram testados direitos, que são pouco utilizados e que ninguém percebeu que tem um erro ali? O FindBugs pode te ajudar com isso.

Por exemplo, ele acha comparações de String usando == (o certo seria usar o método equals). Outro exemplo, no meu código eu tinha uma lista de estados e estava vendo se ela tinha uma cidade. O código compilava, mas o que eu queria realmente era saber se na lista de estados tinha um estado e não uma cidade! (pra achar bugs desse tipo acho que só a partir do Java 5 onde as Collections podem ter tipos)

E para cada tipo de aviso ele dá uma explicação do porque. Com isso você pode além de achar os bugs aprender mais coisas sobre a linguagem Java.

Outra coisa legal do FindBugs é a integração com outras ferramentas. Pode usá-lo como plugin do Eclipse ou com o Maven para gerar relatórios do projeto.

Agosto 8, 2008. Tags: , , . ferramentas, java. Deixe um comentário.