当把一个本地项目部署到远程服务器后有可能出现意想不到错误,这个时候通过远程调试能够更清楚的找到bug所在位置。
JVM配置
方式一
改变catalina.sh的默认配置。其实完全没必要,tomcat已经把调试配置好了,我们只需要稍作修改就能开启远程调试。下面说具体步骤。
- 修改catalina.sh中一个参数。
上图中红色框中的部分,把默认值改成0.0.0.0:8000,前面的调试ip地址,默认是本地ip调试也就是无法远程调试,0.0.0.0表示所有ip地址都能调试。
2. 关闭tomcat,启动tomcat,注意启动命令为:./catalina.sh jpda start,后面参数是调试模式的意思。或者将startup.sh 中的最后一行 exec "$PRGDIR"/"$EXEXUTABLE" start "$@"中的start修改成 jpda start ,然后用./startup.sh
方式二
简单粗暴:
WIN系统,在catalina.bat里:
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
Linux系统,在catalina.sh里:
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
SET CATALINA_OPTS=-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000
Linux系统,在catalina.sh里:
CATALINA_OPTS="-server -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8000"
注意:其中在JAVA
_OPTS添加也等效,但是-Xdebug一定要排在命令前面
本地的eclipse/myeclipse选择远程调试
debug- Debug Configurations
然后remote java Appli。。。,project里选择你要调试的项目,connection type默认不用改,host填远程主机ip地址,port填上面调试的端口号8000(可修改成未占用的端口号,默认是8000)
注意:本地项目要和服务器上的项目代码完全一致。
然后就像本地调试一样进行调试