项目放到linux服务器了,服务器的环境或者数据可能和我们本地不一样,这个时候我们可能需要远程的断点进行调试,来查看请求过程中的各个变量的值。这里我们的应用服务器用的tomcat5.5.17
这个时候你需要知道JPDA这个概念。
简单的概括下JPDA:
Java Platform Debugger Architecture(JPDA:Java平台调试架构) 由Java虚拟机后端和调试平台前端组成
1.Java虚拟机提供了Java调试的功能
2.调试平台通过调试交互协议向Java虚拟机请求服务以对在虚拟机中运行的程序进行调试
这里我们的eclipse就是那个调试的前台。我们需要将本地的调试平台和服务器运行的项目结合起来。
第一步:启动tomcat的jpda支持
默认情况下tomcat的启动命令是: ./catalina.sh start 但是这个命令是没有启动我们的jpda这个服务
我们需要启动jpda服务,好在tomcat提供了集成化的命令:./catalina.sh jpda start,这样就启动了我们服务器jvm的jpda服务了。tomcat默认的jpda服务的端口是8000,这个时候我们使用命令看下 netstat -an,看看8000端口是不是已经启动了。
第二步:从本地建立jpda的断点调试前台
1、在eclipse的“Run”菜单下选择“Debug...”菜单(有的eclipse版本是debug configuration),在弹出的对话框左边的菜单中选择“Remote Java Application”菜单,右键点击,选择“New”,这个时候弹出一个需要填写参数的对话框
2、在弹出的框中,定义项目名称,选择要断点调试的项目,Connect type(默认Standard (Socket Attach)),定义我们的web项目放在哪里(就是我们的远程虚拟机在哪里),填写他的ip以及提供的服务端口号,tomcat的这个版本是8000.最后选择source标签,将项目的源码加入,我这里一般选择add一个java project的方式
3、切换到debug模式下,就能看到debug的相关选项都是激活状态。在本地的source文件中加断点,然后请求服务的链接,看看我们的断点调试是否成功。
以上的操作经过我本人验证过。
很多的服务器都提供这种远程调试的接口服务,所以不要局限于tomcat可用,最主要的区别就是每个服务器提供的jpda的启动方式不同,提供的服务端口不同,这里我们tomcat5.5提供的启动方式是catalia.sh jpda start这种命令行的方式,端口默认用8000。大家在开发的时候按照服务器提供的说明进行调试吧
加点常看的操作命令:
1、查看当前tomcat的进程号
[java] view plaincopy
[root@localhost bin]# ps -ef|grep tomcat
root 14857 1 6 09:22 pts/0 00:00:35 /usr/java/jdk1.6.0_22/bin/java -Djava.util.logging.config.file=/usr/local/tomcat6/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=n -Djava.endorsed.dirs=/usr/local/tomcat6/endorsed -classpath /usr/local/tomcat6/bin/bootstrap.jar -Dcatalina.base=/usr/local/tomcat6 -Dcatalina.home=/usr/local/tomcat6 -Djava.io.tmpdir=/usr/local/tomcat6/temp org.apache.catalina.startup.Bootstrap start
root 15055 14811 0 09:31 pts/0 00:00:00 grep tomcat
通过上边的命令执行后可以看到tomcat的进程号是14857
2、杀掉当前的tomcat进程
[c-sharp] view plaincopy
[root@localhost bin]# kill -9 14857
为啥这么杀死进程?因为用常规的shutdown.sh 杀死tomcat进程很慢,偶尔因为资源占用还关闭不了,索性直接做掉这个进程
3、启动jpda的远程调试
[java] view plaincopy
[root@localhost bin]# cd /usr/local/tomcat6/bin
[root@localhost bin]# ./catalina.sh jpda start
4、查看默认的8000对外服务端口是否启动
[java] view plainco
[root@localhost bin]# netstat -an|grep 8000
tcp 0 0 192.168.119.149:8000 192.168.70.80:1535 ESTABLISHED
5、测试完毕如何关闭?
直接杀死tomcat进程就行了,或者按照正常步骤关闭tomcat就ok了
6、直接按照上边的方法进行远程连接调试吧。在本地源码中增加断点,在查看远程服务器。注意,这个8000端口不影响原来的任何服务。只是当我们将项目上线的时候就不要这么启动我们的tomcat了。
分享到:
相关推荐
【远程调试JPDA详解】 在IT开发过程中,尤其是在部署Java应用程序到Linux服务器后,由于环境差异或数据不一致,我们可能会遇到需要远程调试的情况。此时,利用Java Platform Debugger Architecture(JPDA)可以实现...
"使用Eclipse远程调试Linux服务器Tomcat项目" 一、概述 在开发Java Web应用程序时,需要在远程服务器上进行调试,以便更好地了解程序的执行过程。使用Eclipse远程调试Linux服务器Tomcat项目可以帮助开发者更好地...
### Eclipse远程调试Tomcat知识点详解 #### 一、概述 在软件开发过程中,尤其是在Web应用开发领域,远程调试是一项非常重要的技术。它可以帮助开发者在不同的环境中(如远程服务器)调试应用程序,这对于查找和...
本文将深入探讨如何使用MyEclipse进行远程调试Tomcat服务器上的项目,以及相关的重要知识点。 首先,我们需要了解的是远程调试的概念。远程调试允许开发者在本地开发环境中对运行在另一台计算机(如远程服务器)上...
该工具可用于本地和远程调试,也支持多种应用服务器和集成开发环境。本文档详细介绍了在Windows操作系统下通过JProfiler可视化远程监控运行在Linux操作系统上的Tomcat应用服务器进程的具体步骤。 **知识点一:...
在Eclipse中,选择“Run” -> “Debug Configurations…”,然后在“Remote Java Application”部分新建一个配置,填写服务器IP和刚才设置的调试端口,点击Debug按钮,就可以如同调试本地代码一样进行远程调试了。...
本文将详细介绍如何在Tomcat和Eclipse环境中配置远程调试。 首先,我们来看Tomcat的配置。Tomcat是一个流行的开源Java Servlet容器,它用于部署和运行Java Web应用程序。在Windows和非Windows系统(如Linux或Mac OS...
通常,远程调试Tomcat需要修改`catalina.sh`配置文件,设置JPDA(Java Platform Debugger Architecture)相关的参数,比如修改`JPDA_ADDRESS`来指定调试端口。但这种方法需要直接修改Tomcat的启动脚本,有些人可能...
为了启用远程调试功能,首先需要配置Tomcat使其支持Debug模式。这通常涉及到修改`catalina.bat`文件(Linux系统下为`catalina.sh`)。 **具体步骤如下:** - 在`catalina.bat`文件中找到`CATALINA_OPTS`注释,并在...
JPDA是一种Java平台调试架构,允许远程调试Java应用程序。在`catalina.sh`或`startup.bat`中,可以通过设置特定的参数来开启JPDA调试模式。 - **JPDA_TRANSPORT**:定义了调试器使用的传输协议,默认为“dt_socket...
- 使用`catalina.sh jpda start`启动Tomcat,实现远程Java Debugging。 - `manager`应用允许通过Web界面管理部署的应用,如查看、部署、更新和卸载。 8. **集群与负载均衡** - Tomcat可以通过复制和负载均衡实现...
还可以通过`bin/catalina.sh`或`bin/catalina.bat`进行更多操作,如`run`(前台启动)、`jpda start`(启动并支持远程调试)等。 ### 4. 部署Web应用 Web应用程序可以以WAR文件形式或解压后的目录形式部署在`...