Depurar seu aplicativo Java do Service Fabric usando o Eclipse
Inicie um cluster de desenvolvimento local seguindo as etapas em Configurando o ambiente de desenvolvimento do Service Fabric.
Atualize entryPoint.sh do serviço que você quer depurar para que ele inicie o processo java com parâmetros de depuração remota. Esse arquivo pode ser encontrado no seguinte local:
ApplicationName\ServiceNamePkg\Code\entrypoint.sh
. Neste exemplo, a porta 8001 foi definida para depuração.java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n -Djava.library.path=$LD_LIBRARY_PATH -jar myapp.jar
Atualize o Manifesto do Aplicativo, definindo a contagem de instâncias ou a contagem de réplicas para o serviço que está sendo depurado como 1. Essa configuração evita conflitos para a porta que é usada para depuração. Por exemplo, para serviços sem estado, defina
InstanceCount="1"
e, para serviços com estado, defina o destino e o tamanho mínimo do conjunto de réplicas para 1, como se segue:TargetReplicaSetSize="1" MinReplicaSetSize="1"
.Implante o aplicativo.
No IDE do Eclipse, escolha Executar -> Configurações de Depuração -> Aplicativo Java Remoto e propriedades de conexão de entrada e defina as propriedades da seguinte maneira:
Host: ipaddress Port: 8001
Defina pontos de interrupção nos pontos desejados e depure o aplicativo.
Se o aplicativo estiver falhando, talvez seja conveniente habilitar os despejos de núcleo. Execute ulimit -c
em um shell e, se retornar 0, os despejos de núcleo não estão habilitados. Para habilitar despejos de núcleo ilimitados, execute o seguinte comando: ulimit -c unlimited
. Você também pode verificar o status usando o comando ulimit -a
. Se quiser atualizar o caminho de geração do despejo de núcleo, execute echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern
.