Tomcat使用IDEA远程Debug调试的讲解
Tomcat运行环境:CentOS6.5、Tomcat7.0、IDEA
远程Tomcat设置
1、在tomcat/bin下的catalina.sh上边添加下边的一段设置
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=60222,suspend=n,server=y"

2、address=60222 这个是后边IDEA设置的时候需要用到的调试端口,可以任意设置一个未使用的端口,但是后边的配置都要一致.
IDEA设置
1、添加Tomcat Server选择Remote

2、设置相应的参数

- xxx.xxx.152.67:8080为远程Tomcat服务器的IP地址和端口,这里可以设置域名,例如:http://security.xxxx.cn/login.do;
- 60222这个端口为1.1步中设置的debug端口,适合tomcat的端口不一样的;
- 这里的Remote staging选择的都是same file system,这就要求本地代码和远程Tomcat的代码要一直;
3、Startup/Connection

选择Debug、Socket、调试端口这里是60222
4、选择运行

然后点击右边的debug即可运行(首先Tomcat要启动)
5、是否成功

可以看到已经连接成功,
查看Tomcat服务器日志,如下:

6、如果失败
如果出现端口被拒绝:

这种可能是tomcat并未启动,或者遇错误停止,重启Tomcat即可
连接失败,其他问题
首先在服务器端查看 调试端口 这里是60222的使用情况
[root@VM_92_170_centos bin]# lsof -i:60222 COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME java 12064 root 5u IPv4 1320209 0t0 TCP 1x.xxx.xxx.170:60222->1xx.xx.xxx.231:13325 (ESTABLISHED)
可以看到这是自己本地和远程的一个连接,如果连接失败却看到上边的使用情况,请使用kill -9 PID杀死进程,重启Tomcat,然后在IDEA中重新运行debug,本例为:kill -9 12064
容易出现的问题
- 如果远程没有连接上,两个端口被占用或者防火墙屏蔽。除了JMX server指定的监听端口号外,JMXserver还会监听一到两个随机端口号,这个如果防火墙关闭了的话就不用考虑,如果使用了防火墙,还需要查看它监听的端口。
- 账号的相应的读写权限一定要有;
总结
上一篇:详解Java内存泄露的示例代码
栏 目:JAVA代码
下一篇:Java并发编程(CyclicBarrier)实例详解
本文地址:http://www.codeinn.net/misctech/65726.html


阅读排行
- 1Java Swing组件BoxLayout布局用法示例
- 2java中-jar 与nohup的对比
- 3Java邮件发送程序(可以同时发给多个地址、可以带附件)
- 4Caused by: java.lang.ClassNotFoundException: org.objectweb.asm.Type异常
- 5Java中自定义异常详解及实例代码
- 6深入理解Java中的克隆
- 7java读取excel文件的两种方法
- 8解析SpringSecurity+JWT认证流程实现
- 9spring boot里增加表单验证hibernate-validator并在freemarker模板里显示错误信息(推荐)
- 10深入解析java虚拟机




