Tomcat远程调试

1      描述

1.1      背景

在项目中,会遇到一些问题,本地测试正确,测试环境测试也正确,但线上环境却出现问题,因为线上环境又缺乏一些必要的问题定位手段,这时能够经过远程调试来调试程序。但原则上,咱们仍是尽量经过业务逻辑、代码分析、日志定位来解决线上问题,远程调试是一把双刃剑,可能解决线上问题,但也可能致使线上出现新的问题。vim

本文以Tomcat7+eclipse+Centos6.5为环境,描述如何进行远程调试。tomcat

1.2      方法和步骤

1.     修改Tomcat配置

在catalina.sh中添加以下:服务器

CATALINA_OPTS="-Xdebug  -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n"eclipse

参数说明以下:socket

-Xdebugtcp

启用调试模式测试

-Xrunjdwp<sub-options>spa

加载JVM的JPDA参考实现库debug

transport=dt_socket调试

Socket链接,可选dt_shmem 经过共享内存的方式链接到调试服务器

address=8000

调试服务器监听的端口

server=y

是不是服务器端,n为客户端

suspend=n

启动过程是否加载暂停,y为启动时暂停,方便调试启动过程

2.     修改Centos防火墙

vim /etc/sysconfig/iptables

添加一行:

-A INPUT -p tcp -m state --state NEW -m tcp --dport 8000 -j ACCEPT

而后重启防火墙使其生效(开放的端口8000须要和tomcat中配置的8000一致)

service iptables restart 

3.     使用Eclipse进行调试

1) 打开debug

2) 设置debug

3) 执行debug

设置完毕后,点击“Debug”按钮,在代码中打上断点,程序运行到断点后,就能够看到效果,具体如图:

点击红框内的按钮,能够取消远程调试。

相关文章
相关标签/搜索