情况是这样的,现在的产品出现了一个 bug ,需要及时排查快速解决,你是怎么样解决的呢?
解决:登陆服务器,查看日志,看一下哪里有问题,然后本地运行程序进行debug ,解决后,在重新打包部署到服务器。
现在我们开发项目,Java 项目普遍都是使用 Idea 做为主流开发工具,springboot 技术栈来快速构建项目,然后以打 jar 包的方式来部署项目。现在我们就来通过远程调试的方式来快速 debug ,快速的定位修改问题。
什么是远程调试?
个人理解:程序在服务器运行着,出现了问题,源代码在本地,我们可以通过在本地来连接远程服务器,连接后,在本地打断点来分析远程程序的问题。如果你觉得还是不理解再白话一点,就是本地 debug 远程程序。
下面来进行详细的操作步骤:
idea 添加远程服务器 remote
第一步: 打开项目的配置,使用 idea 的快捷键 commad + shift + a ,Windows 系统使用 Ctrl + shift + a ,这样会快速定位到 aciton , 然后在输入框输入 edit configurations ,按下回车即可,如下图所示:
回车后(敲击 enter 键)将会进入如下的界面点击➕号,选择remote ,然后填写远程服务器的 ip 和 远程连接的 port 即可,如下图:
上图点击 remote 以后出现如下页面配置,添加如下操作:
1.起个名字
2.选择 Attach to remote JVM
3.填写远程服务器的 ip 和 port
4.复制如下命令:
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
点击 ok 保存设置即可。
到这里所有的配置都已经OK了!
下面啰嗦一句,使用 idea 开发 java 项目是十分高效的,里面有非常丰富的快捷键和非常丰富的插件总能解决我们各种各样的需求,例如上面我提到的 command +shift+a 就是一个非常强大的快捷键,使用它我们能快速调出任何idea的功能键,后续打算分享一下如何高效使用 idea 。
打包 jar ,远程服务器启动服务,开启 debug 端口
使用 maven 打 jar 包,然后部署到远程服务器,这里需要强调一点在远程服务器启动程序的时候,请使用如下的命令启动,该命令是开启远程端口 5005 ,方便本地连接,进行远程debug.
java
上面的命令参数来自添加远程 server 时 复制而来。 启动以后,这样远程 debug 端口就已经打开,我们可以随时进行远程 debug.
通过debug 模式,连接远程服务
Idea 上选择远程刚才命名的 server , 点击 debug 按钮快速连接远程 server ,如下图所示:
如上图显示 Connected to the target VM, address: 'zempty.sg:5005', transport: 'socket' ,这样代表我远程连接成功了,下面可以在本地打断点进行调试了。
本地代码打断点,debug 远程服务
在本地程序上打断点,访问远程 server 接口的时候,你会发现程序可以在本地你打的短点处停下来了,这是一个令人欣喜的结果,因为我们以后可以在本地调试远程 server 上的 bug 了,再此,恭喜你。
总结:
idea 是 java 开发者的一个非常高效的工具,接下来我还会分享一些 idea 的使用技巧和常用插件,希望我可以帮助你更高效的学习和使用 java,本文首发于微信公众号 「 zempty 笔记 」,欢迎关注。