Opções Avançadas para Depurar Beans Java

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

A VM (Virtual Machine) utilizada para executar os beans Java não é a mesma VM na qual o workbench está sendo executado. Uma VM separada é criada para cada instância do visual editor. O caminho de classe dessa VM é definido para ser as entradas no caminho de construção Java para o projeto. Se o caminho de construção Java for alterado enquanto o visual editor 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/debug/vmtraceout=true

Além de ter a saída do console mostrada a partir da VM utilizada pelo visual editor, você pode iniciá-lo no modo de depuração e executar a depuração remota. Este cenário não é otimizado e pode ser alterado em futuras versões do visual editor. Porém, ele é documentado no caso de você precisar executar a depuração dos beans Java no tempo do design. Para executar a depuração remota, serão necessários dois workbenchs em execução: um com os beans Java 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 visual editor, o arquivo -DEBUG deve conter a linha:

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

Toda vez que o visual editor iniciar uma VM, ele perguntará se você deseja que ela seja iniciada no modo de depuração ou não. Essa mensagem será gravada em um diálogo ou, se o arquivo -DEBUG contiver a entrada org.eclipse.jem.proxy/debug/ioconsole=true, ela será gravada em System.out.

Se a mensagem for gravada em System.out, será solicitado que você digite Y ou N e aguarde em System.in:

Deseja iniciar a vm remota (Projeto (Teste)-VM para HelloFrame.java) no modo de depuração? (Digite Y ou N):

O diálogo anterior serve para quando a classe HelloFrame.java no projeto Teste for aberta com o visual editor. 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.

Se a mensagem for gravada em System.out, ela aguardará a entrada em System.in.

Você deve, agora, conectar o depurador à porta número 7078. Digite 'y' quando o depurador estiver conectado. O programa não continuará corretamente sem que o depurador seja conectado. Pressione 'n' se não for possível conectar o depurador. Isso também causará um erro, mas ele será limpo melhor. Digite 'y' ou 'n':

A próxima etapa é conectar um depurador remoto à porta número 7078. A instância do workbench que está executando o visual editor é 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 visual editor, 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 visual editor porque não especifica um nome de arquivo de origem Java específico. Essa VM é iniciada na primeira vez que qualquer bean info é requerida 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.