使用 Eclipse 调试 Java Service Fabric 应用程序

  1. 按照设置 Service Fabric 开发环境中的步骤启动本地开发群集。

  2. 更新要调试的服务的 entryPoint.sh,让其使用远程调试参数启动 java 进程。 可在以下位置找到此文件: ApplicationName\ServiceNamePkg\Code\entrypoint.sh。 设置了端口 8001,以便在此示例中进行调试。

    java -Xdebug -Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=y -Djava.library.path=$LD_LIBRARY_PATH -jar myapp.jar
    
  3. 更新应用程序清单,将要调试服务的实例计数或副本计数设置为 1。 此设置可避免用于调试的端口发生冲突。 例如,对于无状态服务,设置 InstanceCount="1";对于有状态服务,将目标和最小副本集大小设置为 1,如下所示:TargetReplicaSetSize="1" MinReplicaSetSize="1"

  4. 部署应用程序。

  5. 在 Eclipse IDE 中,选择“运行”->“调试配置”->“远程 Java 应用程序和输入连接属性”,然后按如下所示设置属性:

    Host: ipaddress
    Port: 8001
    
  6. 在所需点处设置断点并调试应用程序。

如果应用程序发生故障,则可能还需要启用 coredump。在 shell 中执行 ulimit -c,如果返回 0,则 coredump 未启用。若要启用不受限制的 coredump,请执行以下命令:ulimit -c unlimited。还可以使用命令 ulimit -a 验证状态。若要更新 coredump 生成路径,请执行 echo '/tmp/core_%e.%p' | sudo tee /proc/sys/kernel/core_pattern

后续步骤