Idea 2017远程调试tomcat8 笔记

平时自己开发用的电脑是Windows系统,测试环境一般是linux系统。由于系统环境的不同,有时会遇到在本地环境下程序能正常执行,而到了测试环境便歇菜的情况。为了方便解决这类问题,最好的办法还是能够远程调试服务器代码。整体来说,配置起来很容易,但冷不丁会遇到一些坑,本文主要对自己遇到的坑做个记录,作自己备忘,也为各位有类似经历的同学出坑作方便。

参考前人的经验,总结下来,配置主要分两步:

1、开启tomcat远程调试端口

2、使用IDE,我目前用的是Idea,debug模式连接该远程端口

具体步骤参看下面这篇文章

参考文档:http://blog.csdn.net/mhmyqn/article/details/49209541

一般来说,这样配置下来,基本就可以了。但是,像我,配置之后,启动idea调试,总是报“Unable to open debugger port (ip:8908): java.net.ConnectException "Connection refused: connect"”。整理一下思路:idea已经提示是在连接debug端口的时候报的错,而且是网络问题,那这么说,idea已经知道要远程调试了,这边应该是没什么问题;既然是端口,会不会是第一步中tomcat的调试端口没有开启呢?如此,就查看tomcat启动日志,发现启动正常,而且“Listening for transport dt_socket at address: 8908”。看来,第一步应该也是成功了呀,怎么就是不能调试呢?

于是上网搜索,请求前辈。看到有人说可能是端口冲突,但是netstat -apn|grep 8908显示并没有。后来,终于在一个前辈的笔记中,找到了可能的问题原因及解决方法:linux环境的host文件,如果其中的“127.0.0.1 localhost”被删掉,调试程序就无法定位主机。我打开自己测试环境的host文件,发现有该句映射,顿感失望,但其后有一些很奇怪的映射,于是有些怀疑是不是这些奇怪的东西导致“127.0.0.1 localhost”没有生效,便试着把这句映射移到了host文件末尾,然后重启tomcat,重新debug连接,调用接口测试。问题终于解决。

参考文档:http://blog.csdn.net/tjns8/article/details/51046504

后记:远程调试几次之后,又发现一个问题:idea首次debug启动之后,如果再次重启,就会又出现连接不上的情况。此时再将服务端tomcat重启一下就可以了。

猜你喜欢

转载自fs08ab.iteye.com/blog/2369820