Depurar seu aplicativo Java Service Fabric usando o Eclipse
Inicie um cluster de desenvolvimento local seguindo as etapas em Configurando seu ambiente de desenvolvimento do Service Fabric.
Atualize entryPoint.sh do serviço que quer depurar para iniciar o processo de Java com parâmetros de depuração remota. Este arquivo pode ser encontrado no seguinte local:
ApplicationName\ServiceNamePkg\Code\entrypoint.sh
. A porta 8001 está definida para depuração neste exemplo.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. Esta definição evita conflitos na porta utilizada para depuração. Por exemplo, para serviços sem estado, defina
InstanceCount="1"
e para serviços com estado, defina os tamanhos de destino e de réplica mínimos como 1 da seguinte forma:TargetReplicaSetSize="1" MinReplicaSetSize="1"
.Implemente a aplicação.
No IDE do Eclipse, selecione Executar -> Configurações de depuração -> Aplicação Java remota 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, você também pode querer habilitar coredumps. Execute ulimit -c
em um shell e, se ele retornar 0, os coredumps não estarão habilitados. Para habilitar coredumps ilimitados, execute o seguinte comando: ulimit -c unlimited
. Você também pode verificar o status usando o comando ulimit -a
. Se você quiser atualizar o caminho de geração do coredump, execute echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern
.