我在IBM Bluemix上部署了一个独立的Java应用程序,作为Cloud Foundry Java buildpack。
有没有办法在Eclipse中对它进行远程调试?我只能找到用于远程调试Java Liberty buildpack应用程序的文档。
答案 0 :(得分:2)
在另一个答案中提到的套接字侦听方式当然很方便,但是希望您将一个公共IP分配给您的调试机器(或者您必须在路由器上配置一些端口转发)。这可能并非总是可行。
所以另一种方法是在Java应用程序上启用调试并使用ssh端口转发连接到app实例。以下是步骤
JBP_CONFIG_DEBUG
的环境变量{enabled: true}
并重新启动应用程序来启用java调试。通过JDWP
为调试框架设置SSH隧道 cf ssh -N -T -L 8000:localhost:8000 <APP_NAME>
打开ssh隧道后,使用localhost:8000
上的eclipse中的Socket Attach调试类型
cf ssh
前的先决条件:cf api
,cf login
,cf target
答案 1 :(得分:1)
在https://docs.cloudfoundry.org/buildpacks/java/java-tips.html#debugging
的Java buildpack文档中有一些说明调试器现在应该正在运行。如果切换到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中运行的调试器。您现在可以像在本地运行时一样添加断点并查询应用程序。