Opções avançadas para depurar Java beans

Durante a programação habitual, não é necessário considerar a VM utilizada por cada instância do editor visual. Contudo, os utilizadores avançados podem configurar a área de trabalho de modo a que quaisquer mensagens enviadas para System.out ou System.err da VM sejam gravadas no ficheiro .log no directório .metadata no espaço de trabalho.

A máquina virtual (VM) que é utilizada para executar os Java beans não é a mesma VM em que a área de trabalho está em execução. Uma VM separada é criada para cada instância do editor visual. O caminho de classe desta VM está definido para ser as entradas do caminho de construção Java para o projecto. Se, enquanto o editor visual estiver aberto, o caminho de construção Java for alterado, quaisquer editores abertos têm de ser fechados e abertos novamente para reflectirem o caminho de construção actualizado.

Quando a área de trabalho é iniciada, pode ser-lhe atribuída uma opção -DEBUG que aponta para um ficheiro de texto:

-DEBUG file:/c:/temp/options.txt

O ficheiro de depuração contém entradas que são lidas pelo editor visual. Se o ficheiro contiver a seguinte linha, quaisquer mensagens enviadas para System.out ou System.err são mostradas na consola:

org.eclipse.jem.proxy/remote/debug/vmtraceout=true

Além de ter saída da consola mostrada a partir da VM utilizada pelo editor visual, pode iniciá-la no modo de depuração e desempenhar depuração remota. Este cenário não está optimizado e pode ser alterado em futuras versões do editor visual. No entanto, encontra-se documentado no caso de necessitar de executar uma depuração do tempo de concepção do Java beansat. Para executar depuração remota precisará de de ter duas áreas de trabalho em execução: uma com os Java beans que pretender depurar, e outra que possa realizar depuração remota baseada em sockets. A segunda área de trabalho pode estar em execução na mesma máquina ou noutra máquina. Para activar a depuração do editor visual da VM, o ficheiro -DEBUG deve conter a linha:

org.eclipse.jem.proxy/remote/debug/debugvm=true

De cada vez que o editor visual inicia uma VM, perguntar-lhe-á se pretende que seja iniciada, ou não, em modo de depuração.

O diálogo anterior é para quando a classe HelloFrame.java no projecto Teste for aberta com o editor visual. Se seleccionar Sim, ou introduzir S e premir a tecla Enter na consola, a VM é iniciada em modo de suspensão com -Xdebug utilizando um conector de socket. É atribuída uma porta livre. Em seguida indicam o respectivo número.

O passo seguinte consiste em anexar um depurador remoto à porta número 7078. A instância da área de trabalho que estiver em execução no editor visual é suspensa enquanto o depurador remoto for anexado, o que leva a que tenha de utilizar um depurador de outra aplicação. Se a outra aplicação for outra instância da área de trabalho, pode iniciar a depuração remota com a opção de menu Depurar > Depurar e criar uma nova configuração de Aplicação Java Remota.

Introduza o número de porta que foi previamente escrito em stdout, neste caso 7078. Se o depurador estiver noutra máquina, no campo Sistema Central deve introduzir o endereço de IP da máquina que executa a área de trabalho que está a ser depurada. Para iniciar o depurador remoto, faça clique em Depurar e, em seguida, introduza s na consola stdin da área de trabalho que está a ser depurada.

Além de lhe ser pedido para depurar a VM utilizada por cada instância do editor visual, verá mensagens que lhe pedem para depurar o projecto propriamente dito:

Pretende iniciar a VM remota (Projecto (Teste)-Beaninfo) em modo de depuração? (Introduza S ou N):

Isto é para a VM que for utilizada para introspecção e onde for executado o java.beans.Introspector, e pode ser distinta da VM para o editor visual, porque não especifica um nome de ficheiro de origem Java em particular. Esta VM é iniciada da primeira vez que sejam necessárias informações sobre beans para um Java bean dentro de um projecto, permanecendo activa enquanto o projecto estiver aberto. Ao depurar este projecto poderá avançar e analisar código existente nas classes BeanInfo, à medida que os Java beans vão sendo introspectados. A introspecção acorre uma vez para cada classe Java bean para cada projecto em que for utilizada. O resultado é mantido numa memória cache para melhor rendimento. Se, em qualquer altura, precisar de limpar a memória cache de informações BeanInfo mantidas para determinado projecto, poderá fechar e abrir o projecto no respectivo menu emergente.

Conceitos relacionados
Excepções Java bean
Tarefas relacionadas
Executar a classe visual como Java bean ou aplicação
Configurar opções para executar um Java bean ou uma aplicação Java
Depurar um Java bean ou uma aplicação Java visual
Testar e implementar applets

(C) Copyright IBM Corporation 1999, 2004. Todos os direitos reservados.