Esta página foi útil?
Seus comentários sobre este conteúdo são importantes. Queremos saber sua opinião.
Comentários adicionais?
1500 caracteres restantes
Exportar (0) Imprimir
Expandir Tudo

Depurando aplicativos do Azure no Eclipse

Atualizado: março de 2015

Usando o Kit de Ferramentas do Azure para Eclipse, você pode depurar seus aplicativos se estiverem em execução no Azure ou no emulador de computação, se você estiver usando o Windows como seu sistema operacional. A imagem a seguir mostra a caixa de diálogo de propriedades Depuração usada para habilitar a depuração remota:

Propriedades de depuração

Este tutorial presume que você já tenha um aplicativo que foi criado com êxito e está familiarizado com o emulador de computação e implantação no Azure.

Vamos usar o aplicativo do tutorial Usando a biblioteca de Tempo de Execução do Serviço do Azure no JSP como ponto de partida para este tópico. Antes de prosseguir, crie esse aplicativo se você ainda não tiver feito isso.

noteObservação
O emulador do Azure só está disponível no Windows. Ignore esta seção se estiver usando um sistema operacional diferente do Windows.

  1. Compile o projeto para testar no emulador: no Explorador de Projetos do Eclipse, clique com o botão direito em MyAzureProject, clique em Propriedades, clique em Azure e defina Compilar para como Testar no emulador.

  2. Recrie seu projeto: no menu do Eclipse, clique em Projeto e, em seguida, clique em Compilar Tudo.

  3. No Explorador de Projetos do Eclipse, clique com o botão direito em WorkerRole1, clique em Azure e, em seguida, cliquem em Depuração.

  4. Na caixa de diálogo Propriedades para Depuração de WorkerRole1:

    1. Selecione a opção Habilitar depuração remota para essa função.

    2. Para Ponto de extremidade de entrada a ser usado, use o ponto de extremidade padrão gerado automaticamente pelo kit de ferramentas, listado como Depuração (public:8090, private:8090).

    3. Verifique se a opção Iniciar JVM no modo suspenso, aguardando uma conexão do depurador está desmarcada.

      ImportantImportante
      A opção Iniciar JVM no modo suspenso, aguardando uma conexão do depurador se destina a cenários de depuração avançada no emulador de computação somente (não para implantações na nuvem). Se a opção Iniciar JVM no modo suspenso, aguardando uma conexão do depurador for usada, ela suspenderá o processo de inicialização do servidor até que o depurador do Eclipse esteja conectado à sua JVM. Embora você possa usar essa opção para uma sessão de depuração usando o emulador de computação, não a utilize para uma sessão de depuração em uma implantação na nuvem. A inicialização de um servidor é feita em uma tarefa de inicialização do Azure e a nuvem do Azure não disponibiliza pontos de extremidade públicos até que a tarefa de inicialização seja concluída. Portanto, um processo de inicialização não será concluído com êxito se essa opção estiver habilitada em uma implantação na nuvem, porque ele não será capaz de receber uma conexão de um cliente externo do Eclipse.

    4. Clique em Criar Configurações de Depuração.

  5. Na caixa de diálogo Configuração de Depuração do Azure:

    1. Para Projeto Java para depuração, selecione o projeto MyHelloWorld.

    2. Para Configurar depuração para, marque Emulador de computação do Azure.

  6. Clique em OK para fechar a caixa de diálogo Configuração de Depuração do Azure.

  7. Clique em OK para fechar a caixa de diálogo Propriedades para depuração de WorkerRole1.

  8. Defina um ponto de interrupção em index.jsp:

    1. No Explorador de Projetos do Eclipse, expanda MyHelloWorld, expanda WebContent e clique duas vezes em index.jsp.

    2. No index.jsp, clique com o botão direito na barra azul à esquerda do código de Java e clique em Ativar/Desativar Pontos de Interrupção, conforme mostrado a seguir:

      Configurando um ponto de interrupção

      Um ponto de interrupção é definido se você vir um ícone de ponto de interrupção dentro da barra azul à esquerda do código de Java.

  9. Inicie o aplicativo no emulador de computação clicando no botão Executar no Emulador do Azure na barra de ferramentas do Azure.

  10. No menu do Eclipse, clique em Executar e, em seguida, clique em Configurações de Depuração.

  11. Na caixa de diálogo Configurações de Depuração, expanda Aplicativo Java Remoto no painel esquerdo, selecione Emulador do Azure (WorkerRole1) e clique em Depurar.

  12. Depois que o emulador de computação indicar que o aplicativo está sendo executado dentro do navegador, execute http://localhost:8080/MyHelloWorld.

    Se for solicitado por uma caixa de diálogo Confirmar Chave de Perspectiva, clique em Sim.

    A sessão de depuração agora deve ser executada na linha de código onde o ponto de interrupção foi definido.

Isso mostrou como depurar no emulador de computação; a próxima seção mostra como depurar um aplicativo implantado no Azure.

securitySegurança Observação
O suporte atual do kit de ferramentas para a depuração remota de Java é destinado principalmente a implantações em execução no emulador de computação do Azure. Como a conexão de depuração não é segura, você não deve ativar a depuração remota em implantações de produção. Se você precisar depurar um aplicativo em execução na nuvem do Azure, use uma implantação de preparo, mas perceba que o acesso não autorizado à sua sessão de depuração é possível se alguém souber o endereço IP da sua implantação na nuvem, mesmo se houver uma implantação de preparo.

  1. Compile o projeto para testar no emulador: No Explorador de Projetos do Eclipse, clique com o botão direito em MyAzureProject, clique em Propriedades, clique em Azure e defina Compilar para como Implantação na nuvem.

  2. Recrie seu projeto: no menu do Eclipse, clique em Projeto e, em seguida, clique em Compilar Tudo.

  3. Implante o aplicativo em preparo no Azure.

    ImportantImportante
    Conforme mencionado acima, é altamente recomendável que você depure no emulador de computação na maioria dos casos, depure no ambiente de preparo somente se a depuração adicional for necessária. É recomendável não depurar no ambiente de produção.

  4. Quando sua implantação estiver pronta no Azure, obtenha o nome DNS para a implantação do Portal de Gerenciamento do Azure. Uma implantação de preparo tem um nome DNS no formato http://<guid>.cloudapp.net, em que <guid> é um valor GUID atribuído pelo Azure.

  5. No Explorador de Projetos do Eclipse, clique com o botão direito em WorkerRole1, clique em Azure e, em seguida, cliquem em Depuração.

  6. Na caixa de diálogo Propriedades para Depuração de WorkerRole1:

    1. Selecione a opção Habilitar depuração remota para essa função.

    2. Para Ponto de extremidade de entrada a ser usado, use Depuração (public:8090, private:8090).

    3. Verifique se a opção Iniciar JVM no modo suspenso, aguardando uma conexão do depurador está desmarcada.

      ImportantImportante
      A opção Iniciar JVM no modo suspenso, aguardando uma conexão do depurador se destina a cenários de depuração avançada no emulador de computação somente (não para implantações na nuvem). Se a opção Iniciar JVM no modo suspenso, aguardando uma conexão do depurador for usada, ela suspenderá o processo de inicialização do servidor até que o depurador do Eclipse esteja conectado à sua JVM. Embora você possa usar essa opção para uma sessão de depuração usando o emulador de computação, não a utilize para uma sessão de depuração em uma implantação na nuvem. A inicialização de um servidor é feita em uma tarefa de inicialização do Azure e a nuvem do Azure não disponibiliza pontos de extremidade públicos até que a tarefa de inicialização seja concluída. Portanto, um processo de inicialização não será concluído com êxito se essa opção estiver habilitada em uma implantação na nuvem, porque ele não será capaz de receber uma conexão de um cliente externo do Eclipse.

    4. Clique em Criar Configurações de Depuração.

  7. Na caixa de diálogo Configuração de Depuração do Azure:

    1. Para Projeto Java para depuração, selecione o projeto MyHelloWorld.

    2. Para Configurar depuração para, marque Nuvem do Azure (preparo).

    3. Certifique-se de que a opção Emulador de computação do Azure esteja desmarcada.

    4. Para Host, digite o nome DNS de sua implantação de preparo, mas sem http:// no início. Por exemplo (use o GUID no lugar do GUID mostrado aqui):

      4e616d65-6f6e-6d65-6973-526f62657274.cloudapp.net

  8. Clique em OK para fechar a caixa de diálogo Configuração de Depuração do Azure.

  9. Clique em OK para fechar a caixa de diálogo Propriedades para depuração de WorkerRole1.

  10. Se você não tiver um ponto de interrupção já definido no index.jsp, defina-o:

    1. No Explorador de Projetos do Eclipse, expanda MyHelloWorld, expanda WebContent e clique duas vezes em index.jsp.

    2. No index.jsp, clique com o botão direito na barra azul à esquerda do código de Java e clique em Ativar/Desativar Pontos de Interrupção, conforme mostrado a seguir:

      Configurando um ponto de interrupção
  11. No menu do Eclipse, clique em Executar e, em seguida, clique em Configurações de Depuração.

  12. Na caixa de diálogo Configurações de Depuração, expanda Aplicativo Java Remoto no painel esquerdo, selecione Nuvem do Azure (WorkerRole1) e clique em Depurar.

  13. Em seu navegador, execute o aplicativo preparado, http://<guid>.cloudapp.net/MyHelloWorld, substituindo o GUID de seu nome DNS para <guid>.

    Se for solicitado por uma caixa de diálogo Confirmar Chave de Perspectiva, clique em Sim.

    A sessão de depuração agora deve ser executada na linha de código onde o ponto de interrupção foi definido.

    noteObservação
    Se você estiver tentando iniciar uma conexão de depuração remota com uma implantação que tem várias instâncias de função em execução, no momento você não poderá controlar a quais instâncias o depurador será inicialmente conectado, pois o balanceador de carga do Azure selecionará aleatoriamente uma instância. Quando você estiver conectado a essa instância, no entanto, você continuará depurando a mesma instância. Observe também, se houver um período de inatividade de mais de 4 minutos (por exemplo, quando você tiver interrompido em um ponto de interrupção por muito tempo), o Azure pode fechar a conexão.

Quando a implantação estiver em execução na nuvem, você provavelmente a executará em vários computadores, funções ou instâncias. Isso permite que você se beneficie da garantia de disponibilidade de 99,95% do Azure e expanda seu aplicativo.

Nesses cenários, você precisa depurar remotamente o seu aplicativo Java em uma instância de função específica. No entanto, se você habilitar apenas um ponto de extremidade de entrada regular para depuração, o balanceador de carga do Azure tornará praticamente impossível conectar o depurador a uma instância de função específica. Em vez disso, ele conectará você a uma instância de função que ele escolhe aleatoriamente.

Esse é o tipo de cenário onde tirando proveito de pontos de extremidade de entrada de instância, isso deixará mais fácil depurar uma instância de função específica.

Digamos que você planeja executar até 5 instâncias da implantação. Usando a página de propriedades Pontos de Extremidade na caixa de diálogo de propriedades de função, crie um ponto de extremidade de entrada de instância e atribua um intervalo de portas públicas, em vez de um número de portas únicas. Por exemplo, na caixa de entrada Porta pública, especifique 81-85.

Depois de implantar seu aplicativo com esse ponto de extremidade de instância, o Azure atribuirá um número de porta exclusivo desse intervalo para cada uma das instâncias de função. Em seguida, para descobrir qual instância tem o número de porta atribuído, você pode usar a variável de ambiente InstanceEndpointName_PUBLICPORT (em que InstanceEndpointName é o nome atribuído quando você criou o ponto de extremidade de instância) configurada automaticamente pelo kit de ferramentas em sua implantação (por exemplo, retornando o valor no rodapé da página da Web, para que você possa ler quando abri-la).

Depois que você souber qual número de porta pública foi atribuído a essa instância, pode fazer referência a ele na sua configuração de depuração no Eclipse, afixando-o ao nome do host do serviço. Isso permitirá que o depurador do Eclipse se conecte a essa instância específica e não a qualquer uma das outras instâncias.

  • Após a depuração, você pode alternar a perspectiva de Depuração para Java, clicando no menu do Eclipse, clicando em Janela, Abrir Perspectiva e selecionando a perspectiva que você deseja usar.

  • Para habilitar a depuração remota no GlassFish, não use o recurso de configuração de depuração remota do Kit de Ferramentas do Azure para Eclipse. Em vez disso, configure o GlassFish manualmente. Devido à forma como o GlassFish trata as opções de Java predefinidas nas variáveis de ambiente, o recurso de configuração de depuração remoto do kit de ferramentas não funciona corretamente com o GlassFish. Se o recurso de configuração de depuração remoto do kit de ferramentas estiver habilitado, ele poderá impedir o início do GlassFish.

Mostrar:
© 2015 Microsoft