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