本地调试非常简单,就不说了
记得以前跟同事调试的时候,线上环境出了问题,看他们都是打印log日志,比较麻烦,最近看了下web相关开发内容,发现是可以远程调试的。
不过看过很多类似的文章,Tomcat Remote Server调试都没有成功
网上的文章大都是相互抄袭转载,很多都没有加以验证,导致增加很多时间上的成本
下面介绍一种笔者亲自验证可行的方法
配置远程调试
配置如下
复制JVM的相关参数
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
配置服务器Tomcat
进入$TOMCAT_HOME/bin目录下
vi catalina.sh
#在# OS specific support.上面添加
export JAVA_OPTS='-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005'
开启相关端口
vi /etc/sysconfig/iptables
#在-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT之后添加
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 5005 -j ACCEPT
重启防火墙
service iptables restart
如果嫌麻烦或者对安全要求不高直接关闭防火墙也行
service iptables stop
启动Tomcat
sh startup.sh
然后将war包部署到服务器上
你可以用scp命令传上去,也可以用sftp上传上去
笔者这里用的sftp上传
点击
Tools -> Deployment -> Configuration
配置如图,本地测试用的是root用户,笔者不建议在服务器上用root操作
可参考《Centos 6.5安装配置sftp》
Tools -> Deployment -> Browse Remote Host
Build -> Build Artifacts -> All Artifacts
然后,直接复制图示文件到服务器中
接着启动Remote Server调试
#控制台出现这个表示成功
Connected to the target VM, address: '192.168.1.200:5005', transport: 'socket'
下断点,浏览器输入
http://192.168.1.200:8080/welcome.do
如图所示,断点成功
参考
http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/remote-debugging.html