第一种方式:

有些时候,调试不得不用外网,比如说做支付宝的支付接口,服务器后台通 知就不得不用外网的ip。无奈,只能扔到服务器远程调试了。

网上讲关于远程调试tomcat的倒是蛮多,基本都是将改啥catalina.sh,startup.sh的,操作还是复杂点。下面这篇就只针对于 linux下的tomcat远程调试,不用改啥文件,简单而又没啥副作用。本人在tomcat6 的情况下远程调试成功。

相信很 多J2EE的开发者都是在Windows上面开发程序,然后把程序上传到Linux下运行的吧。可是有时候在自己机器上运行的好好的程序,放到服务器下就 出错了。单单看出错信息也推断不出是哪里的问题。这时候试试用Java的JPDA远程调试程序,一定可以让你很满意。

tomcat服务器已经内置了JPDA支持,只要用:

catalina.sh jpda start

这条命令启动tomcat,它就会监听8000端口,等待调试器的连接。要注意不能使用 startup.sh脚本。tomcat会使用 JPDA_ADDRESS这个环境变量的值。比如想监听8017端口:

export  JPDA_ADDRESS=8017 
catalina.sh jpda start

接着,选一个自己喜欢的调试器,基本上现在主流的如Eclipse、NetBean都可以。我主要使用Eclipse,操作只要三步:

1.选择“Run”菜单里的“Open Debug Dialog”。

2.在对话框里找到“Remote Java Application”。 右键菜单选择“New”创建一个配置。

3.新创建的配置的Project选择服务器上的工程。Host和Port分别填写你服务器的IP和JPDA的端口,默认是8000,或 者$JPDA_ADDRESS。

现在就可以像本机调试一样, 设置断点和跟踪调试了。


第二种方式:


1).tomcat

需要设置两个参数JPDA_ADDRESS,JPDA_TRANSPORT。

a) 执行

在/tomcat6/bin 下修改catalina.sh 增加 JPDA_ADDRESS=XXXX(XXXX为一个未使用的端口号)

b) 启动
在/tomcat6/bin 下执行./catalina.sh jpda start

检查:查看该端口是否已经启动netstat –nat

2).Eclipse

在Eclipse中选择

Run --》Debug Configurations,


在弹出的对话框中右击Remote Java Application新建一个远程调试项,如下如所示:





在 “Name”输入框中输入远程调试的名称,在“Project”中选择要调试的项目,在“Host”中输入需要远程调试项目的IP,也就是tomcat所在的IP,在“Port”中输入设置的端口号,然后钩选“Allow termination of remote VM”,点击“Apply”即可。


第三种方式:
    直接将catalina.sh文件打开,将
   JAVA_OPTS="$JAVA_OPTS -Xdebug -Xnoagent -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=51345"
注释打开,再注释掉
    # JAVA_OPTS="-server -Xms256m -Xmx768m -XX:PermSize=128m"
监听的端口号为51345

第四种方式:
常常会遇到在应用部署在weblogic,tomcat,jetty等服务器下,而我们的代码却在本地,如何用本地的代码调试远程服务器上的程序呢
在web服务器上添加jvm参数,如以下是我们启动jetty服务器的参数,8000代表的是远程debug的端口号
java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,address=8000 -jar start.jar
在本地eclipse中点击
debug->Debug Configuration...->Remote Java Application(新建)

分别选择本地的代码,host填写的时远程服务器的地址,port是刚才在服务器端设置的8000,在eclipse代码中打上一个端点就可以运行了

GitHub 加速计划 / li / linux-dash
10.39 K
1.2 K
下载
A beautiful web dashboard for Linux
最近提交(Master分支:2 个月前 )
186a802e added ecosystem file for PM2 4 年前
5def40a3 Add host customization support for the NodeJS version 4 年前
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐