平常我们都是用windows开发,但是上线需要将tomcat部署到linux下去运行应用。如果系统出现异常,恰好应用的日志输出不完善的话,很难跟踪到问题的原因,这个时候,就可以用eclipse远程调试linux-WEB应用。
前提是:本地要跟linux部署环境的代码保持一致!
1:配置远程服务器
在tomcat的catalina.sh文件的正文的第一行添加:
declare -x CATALINA_OPTS=”-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777″
配置完成tomcat之后,启动tomcat:
root@localhost bin]# nohup ./startup.sh & tail -f ../logs/catalina.out
[root@localhost bin]# ps -ef | grep java
root 8686 1 2 11:08 pts/0 00:03:05 /usr/local/jdk/bin/java -Djava.util.logging.config.file=/usr/local/tomcat1/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -server -Xms1024m -Xmx2048m -XX:NewSize=512m -XX:MaxNewSize=512m -XX:PermSize=512m -XX:MaxPermSize=512m -XX: DisableExplicitGC -Djava.awt.headless=true -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=7777 -Djava.endorsed.dirs=/usr/local/tomcat1/endorsed -classpath /usr/local/tomcat1/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat1 -Dcatalina.home=/usr/local/tomcat1 -Djava.io.tmpdir=/usr/local/tomcat1/temp org.apache.catalina.startup.Bootstrap start
root 12980 12054 0 13:24 pts/1 00:00:00 grep java
启动tomcat后,可以查看监听端口是否已经开启。
[root@localhost bin]# netstat -antp | grep 7777
tcp 0 0 0.0.0.0:7777 0.0.0.0:* LISTEN 8686/java
2:远程服务器开启监控端口访问
linux防火墙默认不开放7777端口,需要配置开放7777端口,才能远程debug。
vi /etc/sysconfig/iptables
iptables -A INPUT -p tcp -s 0/0 –dport 80 -j ACCEPT
重启防火墙
/etc/init.d/iptables restart
3:eclipse配置Remote Java Application
先debug on server启动本地的工程
然后,右击工程debug as->Debug configurations->Remote Java Application
在Connect->Project中选中工程
Connection Properties:
Port:7777(监听端口)
在本地工程中添加断点,访问线上的应用,如果断点进到本地工程,证明配置生效!