即使在云端有很多日志可以看,但是有些场景,还是断点更能清晰知道是哪些变量出了问题,毕竟不是所有变量都会打印到日志里,因此,idea在线调试远程服务,是非常必要的。
最简的调试方法:
启动参数添加如下的代码:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005启动Java的命令应该是:
java -jar -agentlib:jdwp=transport=dt_socket。。。。。后面省略在idea点击Run菜单,点击Edit Configurations
会出现下图的界面,点击左边这个➕号,创建一个Remote Jvm Debug调试类型的调试项。选择了类型后,出现这个界面:

这里host需要填服务端的地址(假如生产端实在云端,直接连接服务端的地址不安全,后面会介绍如何使用ssh隧道工具,将远程端口映射到本地,这里先忽略安全问题,先理解设置方法)
配置完调试地址后,就可以看到有下图这个调试项了,选中这个调试项,再点击debug图标,就可以启动调试了:

启动完调试后,将断点放在项目代码中,就可以启动断点了。当生产触发到你断点代码的服务的时候,本地的断点就会唤醒,是不是很神奇呢?
这里配置远程调试已经完成了,但是还不算完全完成,因为前面说过了,直接暴露生产端的调试端口到外网,是非常不安全的,因此,这里我们还需要做个ssh隧道,使用ssh跳板机做端口映射,通过ssh跳板机,将服务的端口映射到本机计算法。
ssh隧道可以使用yunedit-ssh这个工具来做,因为yunedit-ssh支持windows和mac两种系统。下载安装yunedit-ssh
打开yunedit-ssh后,配置一个映射:
点击新建ssh连接,看到如下界面

然后启用这个映射即可,如下图:

现在可以了,连接本地localhost的5005, 即等于连接服务端的5005端口了。
回到刚才的步骤,在idea配置的host里填写localhost或127.0.0.1即可通过ssh隧道安全连接

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。