Myeclipse jetty远程调试
在本机(windows)环境下代码调试没有问题,在编译好的class文件中不好debug断点调试,在liunx下部署的更是不好调试了,解决的办法是可以用远程调试。在MyEclipse的debug里有remote java application 这个工具,可以使用它来设置远程调试。
第1步: 修改jetty.sh 文件
修改Tomcat安装目录下的/jetty/bin /jetty.sh 文件;在这个文件中加入如下内容:(我是加在文件的第一行)
JAVA_OPTIONS="-Xdebug -Xrunjdwp:transport=dt_socket,address=10000,server=y,suspend=n"
(这里address=10000,表示要远程调试连接的端口号),修改后保存此文件。
第2步: 关掉防火墙(可能需要)
liunx下用如下命令关闭防火墙:
/etc/rc.d/init.d/iptables stop
第3步: 部署项目程序:
将Windows 系统下的 E:\jetty\webapps 目录下要调试的项目程序,部署到Linux系统 /jetty/webapps 目录下。(必须保证Linux下的程序与MyEclipse中的程序一致)
第4步: 重新启动jetty服务
停止jetty服务,使用如下命令:
# jetty.sh stop
启动jetty服务,使用如下命令:
#jetty.sh start
第5步: 新建remote java application
然后打开MyEclipse,新建一个remote java application ,在打开的MyEclipse里的工具栏里有个小虫子debug的图标,点击旁边的下三角符号,选择open debug dialog,打开debug配置对话框,在最后一项有个remote java application ,选中后右击new一个项目
第6步: 配置remote java application
在name里填个名字,然后在下面的connect的project里选中MyEclipse里的项目(即部署在Linux系统下的项目,注意要和远程的项目对应)。connection type就用默认的,connection properties的Host里填上远程机器的ip地址(即Linux系统的IP地址), 第二项Port里填端口:10000,(Port端口和catalina.sh 文件中的address值一样,同时要保证这个端口没被其他服务使用)。配置完成后直接点击“Debug”按钮,开启调试线程,在MyEclipse的debug窗口中会看到有一个调试的线程启动,说明配置成功。
第7步: 设置断点:
在MyEclipse中打开要调试的文件,在需要的地方打上断点,访问远程机器的程序,当程序运行到断点处时会停住,即可进行远程调试。
(注:在调试过程中可以对本地程序进行修改,以达到想要的效果。但所修改的文件并不会影响到远程机器上文件,所以修改过的文件必须更新到远程机器上。)