Você sabe o que é JPDA?
JPDA (Java Plataform Debugger Architecture) prove uma infra-estrutura necessária para você criar um debugger para aplicações J2SE.
Ela inclui 3 níveis de API:
- - Java Debug Interface (JBI), interface da linguagem de alto nível para programação, incluindo suporte para debugging remoto.
- - Java Debug Wire Protocol (JDWP), o qual define o formato das informações e requisições transferidas entre o processo de debugging e a tela do debugger.
- - A JVM Tools Interface (JVM TI). Esta que é a interface nativa que define os serviços que a JVM fornece para as ferramentas, incluindo o debugging.
Quando a JVM é configurada para rodar com o JPDA, ela cria um servidor que fica escutando em um "port" definido em sua inicialização.
O Eclipse lhe possibilita criar uma chamada a este servidor para trocar informações entre as JVM's e assim conseguir debugar uma aplicação utilizando a fonte em sua máquina e a aplicação rodando no servidor.
Mas como configurar o servidor?
Estas configurações funcionam perfeitamente no Tomcat 4.1 e no 5.0, para isto é necessário configurar o Tomcat para rodar em Debug mode. É necessário informar alguns parâmetros para a execução do Tomcat, estes parâmetros são:
transport - que pode ter o valor "dt_socket" ou "dt_shmem", onde:
"dt_socket" tem as chamadas através de socket
"dt_shmem" é feito por compartilhamento de memória e funciona apenas no Windows.
address - onde é informado o valor do "port" para comunicação
Existem duas formas de informá-las:
1 - Procurando no arquivo TOMCAT_HOME/bin/catalina.bat no caso do windows e
TOMCAT_HOME/bin/catalina.sh no linux e trocando para os valores:
transport=dt_socket
address=5000 (Definido o "port" para 5000, mas pode ser colocado em qualquer um que não haja conflito)
2 - Colocando como variáveis de ambiente do sistema operacional, sendo definido o tipo e seu valor:
No Windows 2000:
- a - Clique com o botão direito no ícone "Meu Computador"
- b - Clique na aba "Avançado" e no botão "Variáveis de Ambiente"
- c - Clique em novo e na janela que se abre, coloque:
- Tipo: JPDA_TRANSPORT
- Valor: dt_socket - d - Clique em Ok.
- e - Repita o passo C com os valores:
- Tipo: JPDA_ADDRESS
- Valor: 5000 - f - Feche todas as janelas clicando em OK.
No Linux:
- a - Edite o arquivo dentro do seu HOME, .bashrc e inclua as duas linhas
export JPDA_TRANSPORT=dt_socket
export JPDA_ADDRESS=5000 - b - Salve, feche e abra novamente a janela do terminal.
Agora precisa fazer com que o Tomcat rode em debug mode, para isto eu achei mais simples ir até o arquivo TOMCAT_HOME/bin/catalina.bat no caso do windows e TOMCAT_HOME/bin/catalina.sh no linux, procurar a linha que contém:
JPDA=
e trocá-la para:
JPDA=jpda
Depois rodar o servidor normalmente utilizando o arquivo de lote ou batch:
startup.bat/startup.sh
Você pode verificar com o comando netstat -a (no caso do Windows) para saber se o porto está aberto.
Agora como acesso com o Eclipse?
Para acessar o servidor JPDA no Eclipse, basta ir ao menu Run->Debug...
Selecione o item de Configuração "Remote Java Application".
Clique no botão "New"
Na aba "Connect", selecione o projeto onde tem as fontes no campo "Project"
No campo "Connection Type" mantenha "Standard (Socket Attach)"
Em "Connection Properties" coloque em "Host" o nome do servidor onde está o Tomcat e em "Port" o valor colocado na variável ADDRESS.
Depois clique na aba "Source" e selecione a pasta onde tem suas fontes, pesquisando dentro da pasta Default. é importante que esteja selecionado a pasta do projeto onde tem as fontes, pois se manter na pasta "Default" não será encontrado seus fontes.
Por fim, clique em "Debug" e veja na sua perspectiva de Debug do Eclipse que o serviço está rodando.
Coloque um Breakpoint em sua fonte e faça uma chamada, assim você verá as requisições passar pela sua máquina antes de retornar a requisição ao cliente.
:D
As configurações aqui explicadas são para o servidor Tomcat, é possível configurar para demais servidores, para isto eu aconselho a procurar como fazê-lo para seu servidor.
As informações aqui colocadas foram tiradas de pesquisa na Internet, do site da SUN e do que foi necessário fazer para que o processo funcionasse.
Alguns pontos ao qual seria boa alguma pesquisa:
- Como fazer para rodar o servidor em modo de debug como serviço do Windows?
Espero que vocês possam tirar bons proveitos
Para mais informações:
http://java.sun.com/products/jpda/
2 comentários:
Sim, provavelmente por isso e
Fiz toda a configuração mas está dando erro "Failed to connect to remote VM. Connection refused." O que pode ser? Obrigada!
Postar um comentário