Este post, na verdade, é uma dica rápida para quem possui aplicações JavaEE rodando em servidores Glassfish e está tendo dificuldades na hora de rastrear a origem de possíveis bugs no código.
Habilitando o modo de debug
Existem duas maneiras de se habilitar o modo de debug no Glassfish: através do painel de administração ou durante a inicialização do domínio.
Para habilitar o modo de debug por padrão, através do painel de administração, basta marcar o campo Debug na tela JVM Settings e clicar em Save:
Basta reiniciar o domínio para ver que o servidor abre a porta 9009, através da qual podemos conectar um debugger:
asadmin start-domain domain1
Eis um resumo da saída ecoada pelo Glassfish:
Starting Domain domain1, please wait. Log redirected to .../server.log. Redirecting output to .../server.log Listening for transport dt_socket at address: 9009 Application server is listening at address 9009 for debugger to attach using transport dt_socket ...
A outra forma de se habilitar o modo de debug é fornecer o parâmetro --debug ao iniciar o domínio. Por exemplo:
asadmin start-domain --debug domain1Conectando o debugger da IDE ao servidor
Agora, basta usar os recursos de debugging presentes na sua IDE Java para debugar o código. Por exemplo, se você usa o NetBeans 5.5, basta acessar o menu Run - Attach Debugger… e o configurar da seguinte forma:
O procedimento é semelhante em outras IDEs Java.
Pronto! Feito isso, é só colocar os breakpoints e disparar a execução do código problemático.

