二、Idea远程Debug

IDEA 专栏收录该内容
14 篇文章 0 订阅

一、介绍:

Java远程调试的原理是两个JVM之间通过debug协议进行通信,然后以达到远程调试的目的。两者之间可以通过socket进行通信。

二、步骤:

1、修改配置文件,添加jvm 启动参数 -Xrunjdwp 开启远程debug 端口。一般设置为8888 ,注意staging环境部署了多个项目,端口可能冲突。

参数: "-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8888"

2、线下发布成功后,可以查看进程判断是否开启了远程debug端口

#ps -ef | grep   java 

3、接下来在IDE中配置项目的远程debug即可。idea中可以这样配置

 菜单栏 run\edit configurations,左上角+ 添加一个remote 

remote配置中设置host 为staging环境host:目标服务器ip port:8888 应用即可~

接下来在工具栏里选择刚添加的remote ,点debug即可像在本地debug一样debug staging环境的代码了~

三、注意:

远程debug确实好用,但不要上瘾~毕竟在debug的时候,别人就没法正常使用staging环境了。所以除非万不得已,不要在staging环境debug。

这个改法应该也适用于线上环境,但是线上环境更加谨慎。千万不要这样乱搞~

(工程里可以设置jvm启动参数,不是一个很安全的方法。一般都应该是运维在服务器上去设置的)

 

---------------------------------------------------------------分割线以下是特殊场景-----------------------------------------------------------------------

由于涉及到公司服务器配置,没有截图,有些步骤也没写的特别清楚,搞不定的可以留言我。

1.修改host

在noah环境中找到测试环境hosts配置,粘贴到本地hosts(beta,dev也可以,当然线上也可以)

2.登录服务器

登录服务器

ifconfig查看服务器ip

3.idea配置远程debug

在idea中点击下面按钮开启Run/Debug Configurations界面

 

点击"+"添加Remote类型配置得到下图.configuration中配置Host和Port,Host填服务器ip,Port填服务器端口,比如50001(这种remote模式不能调试jsp文件,因此想调试jsp文件,请用tomcat server remote模式)

Note: Host服务器IP可以在跳板机连接后,输入ifconfig进行查看。

4.登录服务器

在工程文件夹中,找到tomcat的启动脚本修改里面tomcat的启动参数,添加上图中参数设置示例到export JAVA_OPTS="..."里,下面两个参数任意一个都可以。

-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=127.0.0.1:<port>
-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:<port>

上面的address中<port>是java debug的服务端口,自己定义,注意不要和其他端口冲突,比如-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=127.0.0.1:5005

5.重启tomcat服务

sudo /home/q/tools/bin/restart_tomcat.sh /home/q/www/ttsui/  ( 红字替换成自己的工程文件名)(且慢,这里是不用替换自己的文件名,直接是原来工程名即可)

6.socat端口映射

我使用的服务器的ip地址为11.11.11.11, 本机的ip地址为1.1.1.1,因为服务器java debug服务端口是5005端口,而idea中设置的java debug监听端口是50001端口,此时我想用本机连接服务器进行远程调试,需使用socat进行端口映射:

socat TCP4-LISTEN:50001,fork,range=1.1.1.1/32 TCP4:127.0.0.1:5005

上面命令有一个很重要的注意点:range后面的ip之后的24代表这个ip的100.81.128必须与本地相同,如果是32,则表示整个ip都与本地相同,这个意思就是这个ip地址的人在socat转发的端口上可调试

调试之后,记得关闭这个进程,否则

7.开始debug

点击本地工程debug按钮,出现如下提示即为远程连接成功,在相应位置添加断点,向服务器发送请求,开始调试

8.发送测试请求

  • 0
    点赞
  • 0
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

打赏
文章很值,打赏犒劳作者一下
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页

打赏

仰望星空的尘埃

谢谢你的鼓励,一起努力吧!

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值