首先,灵感来源于这个帖子 https://www.jianshu.com/p/f902ac5d29e4
在日常开发过程中发现,有些项目由于本地网关或者数据库的限制,不方便本地调试,于是就想到了是否可以远端调试。网上一搜还真有这种操作,感谢Tomcat的支持。但是网上很多人都是乱写乱转帖,丝毫没有借鉴意义,最后导师推给我一个帖子(上面的连接),试了试感觉讲得挺清晰,但是还是有些没说清楚的地方,于是在这里总结一下。
系统:支持IDEA的操作系统
IDE:能创建远程调试服务的IDEA
Java版本: 根据说明,我感觉似乎现在能见到的Java版本都能进行调试
Tomcat版本:拿7.0试的,7以及更高应该都行
项目类型:测试拿基于SSM的Java web项目进行的,估计能放进tomcat容器的项目类型都支持
远程调试,本质上就是本地通过socket通信,对远端Tomcat发送调试指令,由一个远程的操作进行本地调试。本质上也可以视为是远程跑服务的机器上面有一个IDEA,可以进行debug操作,然后你在另外一台机器上,登录远程桌面,访问那台机器,然后操作IDEA进行调试。
这个原理看上去并不难,所以具体的操作总共分3步:
新建一个remote debug job。
给这个job起个名字,配置Debugger mode与Transport如图所示,然后配好远端tomcat服务器的IP和端口号(这个根据你的项目来确定),配置完之后,下面的Command line就会自动生成,选择好JDK版本之后,Command line就会变成适用于当前JDK版本的指令格式,然后在下方选好你要调试的项目模块。记下Command line的内容,下一步要用Apply然后OK。这样本地配置就完成了。(注:不同版本IDEA这个界面的样式略有不同,找到对应的就好)
通过各种方式访问你的tomcat所在目录,进入tomcatXXX/bin/ linux系统下找到catalina.sh文件,如果是windows系统,那就找到catalina.bat文件。
在# OS specific support. $var must be set to either true or false.这一行上面加一行:
export JAVA_OPTS='xxxxx'
''这里面是我们刚才保存的Command line的内容,图中是我自己的配置。
保存退出,重启tomcat,让它加载最新的配置文件。项目启动起来之后,我们就可以开始远程debug了。
在开始调试之前,要有几个准备工作:
首先,远程tomcat要启动
然后,保证本地代码与远端的打包文件一致
选中remote debug job之后点击debug按钮
当你的debug console出现:
如果出现如图结果,说明你已经与远端建立了调试连接,可以开始远端调试了。本地打断点,调用远端项目的方法,就可以在本地进行debug操作了。