eclipse远程调试jetty

原创 2018-06-06 21:30 阅读(133)次

把多年前CSDN的文章搬过来。这是我原创的

网上找了很多,发现有的人写几句就完事了。自己操作的时候一直不通。今天花了大半天,从无到有确认通了,决定把他记下来。


我用的是 eclipse luna +  jetty 9.

远程调试主要是解决本体DEBUG正确,远程缺出BUG的情况。还有一种情况是作为接收端,因为在内网,无法调试接口而需要将接收端部署到外网服务器上这种情况。


首先是在jetty下加入启动远程调试的参数 -Xdebug -Xrunjdwp:transport=dt_socket,address=10000,server=y,suspend=n。这句很多帖子都写了。

问题是加在哪。用 ${jettyhome}bin/jetty.sh start来启动服务的,需要加在jetty.sh中。

找到同样写 JAVA_OPTIONS的地方的下一行  加入:

JAVA_OPTIONS+=("-Xdebug -Xrunjdwp:transport=dt_socket,address=10000,server=y,suspend=n")。 注意address是端口,可以自己修改。

作者不是用这种方式启动的,是用 java -jar start.jar 启动的。所以在修改该命令 nohup java -Xdebug -Xrunjdwp:transport=dt_socket,address=10000,server=y,suspend=n -jar start.jar。


启动后,本地eclipse   --- > Debug as  --- > debug configurations -- > Remote java application --> 右键 new  ---> 



project 选择本地工程,这里需要保证本地工程代码和服务器上是相同的。否则会调试行数对不上。

host 输入服务器的ip地址

port 填写JDPW的端口,如上配置是10000

然后点DEBUG。会出现运行。如果发现Failed to connect to remote VM. Connection refused. 需要重启一下jetty,作者不知道原因,想来应该是连接上后没有正确释放连接,所以每次调试都需要重启服务。这点有点麻烦。但毕竟远程调试不是长期的方式,所以忍忍。

如果出现 time out.需要修改 eclipse debug的time out  时间。作者因为公司网络不好,和服务器连接不稳,所以遇到过几次。


我改成了20000。

如果顺利,出现进度条,然后进度条消失。此时是进入了远程debug模式,可以开始出发设置了断点的代码开始进行了。