我在 IBM Bluemix 上部署了一个独立的 Java 应用程序作为 Cloud Foundry Java buildpack。
有没有办法在 Eclipse 中对其执行远程调试?我只能找到用于远程调试 Java Liberty buildpack 应用程序的文档。
我在 IBM Bluemix 上部署了一个独立的 Java 应用程序作为 Cloud Foundry Java buildpack。
有没有办法在 Eclipse 中对其执行远程调试?我只能找到用于远程调试 Java Liberty buildpack 应用程序的文档。
另一个答案中提到的套接字侦听方式当然很方便,但希望您为调试机器分配一个公共 IP(或者您必须在路由器上配置一些端口转发)。这可能并不总是可能的。
因此,另一种方法是在您的 Java 应用程序上启用调试并使用 ssh 端口转发连接到应用程序实例。以下是步骤
JBP_CONFIG_DEBUG
通过使用值 设置环境变量{enabled: true}
并重新启动应用程序来启用 java 调试。通过 JDWP 为调试框架设置 SSH 隧道
cf ssh -N -T -L 8000:localhost:8000 <APP_NAME>
打开 ssh 隧道后,使用 Eclipse 上的 Socket Attach 调试类型localhost:8000
之前的先决条件cf ssh
: cf api
, cf login
,cf target
Java buildpack 文档中有一些说明,位于https://docs.cloudfoundry.org/buildpacks/java/java-tips.html#debugging
调试器现在应该正在运行。如果您切换到 Debug 透视图,您应该会在 Debug 面板中看到您的应用程序,并且应该显示Waiting for vm to connect at port
.
接下来,将您的应用程序推送到 Cloud Foundry 并指示 Cloud Foundry 使用以下说明连接到本地计算机上运行的调试器:
-agentlib:jdwp=transport=dt_socket,address=YOUR-IP-ADDRESS:YOUR-PORT
.完成后,您应该会看到您的应用程序已经启动并且现在已连接到在您的 IDE 中运行的调试器。您现在可以添加断点并询问应用程序,就像它在本地运行时一样。