Opções Avançadas para Depurar Beans Java

Durante o desenvolvimento normal, você não deve estar preocupado com a VM utilizada por cada instância do editor visual. Os usuários avançados, porém, podem configurar o workbench para que todas as mensagens enviadas a System.out ou System.err da VM sejam gravadas no arquivo .log no diretório .metadata no seu espaço de trabalho.

A VM (Máquina Virtual) utilizada para executar os Java beans não é a mesma VM na qual o workbench está em execução. Uma VM separada é criada para cada instância do editor visual. O caminho de classe dessa VM é configurado para ser as entradas no caminho de construção Java para o projeto. Se o caminho de construção Java for alterado enquanto o editor visual estiver aberto, todos os editores abertos deverão ser fechados e abertos novamente para refletir o caminho de construção atualizado.

Quando o workbench é iniciado, ele pode receber uma opção -DEBUG que aponta para um arquivo de texto:

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

O arquivo de depuração contém entradas que são lidas pelo visual editor. Se o arquivo contiver a linha a seguir, todas as mensagens enviadas a System.out ou System.err serão mostradas no console:

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

Além de ter a saída do console mostrada a partir da VM utilizada pelo editor visual, você pode iniciá-lo no modo de depuração e executar a depuração remota. Esse cenário não é otimizado e pode ser alterado em futuras versões do editor visual. Porém, ele é documentado no caso de você precisar executar a depuração dos Java beans no tempo do design. Para executar a depuração remota, serão necessários dois workbenchs em execução: um com os Java beans que você deseja depurar e outro que possa executar depuração remota com base no soquete. O segundo workbench pode estar em execução na mesma máquina ou em uma máquina diferente. Para ativar a depuração da VM do editor visual, o arquivo -DEBUG deve conter a linha:

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

Toda vez que o editor visual iniciar uma VM, ele perguntará se você deseja que ela seja iniciada no modo de depuração ou não.

O diálogo anterior serve para quando a classe HelloFrame.java no projeto Teste for aberta com o editor visual. Se você selecionar Sim ou digitar Y e pressionar Enter no console, a VM será iniciada em modo suspenso com -Xdebug utilizando um conector de soquete. Uma porta livre é alocada. Em seguida, é informado a você o número.

A próxima etapa é conectar um depurador remoto à porta número 7078. A instância do workbench que está executando o editor visual é suspensa enquanto o depurador remoto é conectado, de forma que você deve utilizar um depurador de outro aplicativo. Se o outro aplicativo for outra instância do workbench, você poderá iniciar a depuração remota utilizando a opção de menu Depurar > Depurar e criando uma nova configuração do Aplicativo Java Remoto.

Digite o número da porta que foi gravado anteriormente para stdout, neste caso, 7078. Se o depurador estiver em uma máquina diferente, no campo Host você deverá digitar o endereço IP da máquina que está executando o workbench que está sendo depurado. Para iniciar o depurador remoto, clique em Depurar e digite y no console stdin do workbench que está sendo depurado.

Além de ser solicitado que você depure a VM utilizada por cada instância do editor visual, aparecerão mensagens solicitando que você depure o projeto em si:

Deseja iniciar a vm remota (Projeto (Teste)-Beaninfo) no modo de depuração? (Digite Y ou N):

Isso é para a VM utilizada para introspecção e na qual java.beans.Introspector é executado e é possível diferenciar da VM do editor visual porque não especifica um nome de arquivo de origem Java específico. Essa VM é iniciada na primeira vez que quaisquer informações de bean forem requeridas para um Java bean dentro de um projeto e permanece ativa se o projeto permanecer aberto. A depuração desse projeto permite percorrer e analisar qualquer código nas classes BeanInfo conforme a introspecção dos Java beans vai sendo realizada. A introspecção ocorre uma vez para cada classe de Java bean para cada projeto no qual ela é utilizada. O resultado é mantido em um cache para ajudar no desempenho. Se, a qualquer momento, for necessário limpar o cache de informações de BeanInfo mantidas para um projeto, você poderá fechar e abrir o projeto a partir de seu menu pop-up.

Conceitos Relacionados
Exceções do Java Bean
Tarefas Relacionadas
Executando sua Classe Visual como um Bean ou Aplicativo Java
Configurando Opções para Executar um Bean ou Aplicativo Java
Depurando um Java Bean ou Aplicativo Visual
Testando e Implementando Applets

(C) Direitos Autorais IBM Corporation 1999, 2004. Todos os Direitos Reservados.