Eclipse远程调试
来源:互联网 发布:ak70的平均横输出端口 编辑:程序博客网 时间:2024/06/08 06:41
前提:远程服务器上运行的WEB项目class对应的源码与本地项目中必须保持一致
也就是远程tomcat部署的项目就是本机项目打包过去的,而本机项目没有发生变动
远程服务器端
服务器端配置eclipse调试器监听端口,有两种方式,任选其一
第一种方式:
环境变量
exportJPDA_ADDRESS=9999
启动tomcat
使用sh catalina.sh jpdastart启动
注意:不要用startup.sh
通过这条命令启动tomcat,会监听JPDA_ADDRESS设置的端口,等待调试器连接。
如果不配置JPDA_ADDRESS,默认监听8000端口
第二种方式:
配置$tomcat_home/bin/catalina.sh
加上如下一行
说明:server=y是指目标应用程序作为服务监听将要连接的远程调试器(常用);
启动tomcat
通过ps -aux|greptomcat查看启动的tomcat进程,刚才配置的-Xdebug等选项出现在进程信息中,证明配置成功
本机调试端
调试器配置
在本地eclipse中点击debug按钮,选择DebugConfigurations....,如下图
点击选项后,弹出一个窗口,双击左侧RemoteJava Application,如下图
Name:自定义,任意名称
Project:本机eclipse中的WEB项目,与远端服务器上部署的WEB项目一致
Host:被调试的远端服务器ip
Port:远端服务器中环境变量JPDA_ADDRESS的值
配置完成后点击Apply,随后点击Debug,eclipse窗口右下角出现
这里ConnectionType我们选择的是Standard(SocketAttach)方式调试
等待这个进度条跑完,直到consle的红色按钮变成灰色,此时已经完成了服务器端调试准备
测试调试
源码打断点
在本机eclipse源码中找到一处要调试的地方,打上断点
比如,我在一处webservice的service入口类中某一方法testAdd中加入断点
测试接口,进入断点
比如,我测试自己的WebService接口
private static String endpoint = "http://123.125.114.144:8080/JavaUtils/services/TestService?wsdl"; private static Call call = null; @BeforeClass public static void init(){ Service service = new Service(); try { call = (Call) service.createCall(); call.setTargetEndpointAddress(endpoint); } catch (ServiceException e) { e.printStackTrace(); } } @Test public void testRemoteDebug(){ String method = "testAdd"; // 调用远程方法 try { String value = "testValue" Object ret = call.invoke( method, new Object[] {value); System.out.println(ret.toString()); } catch (AxisFault e) { System.err.println(e.getFaultString()); } }
执行单元测试,调用服务器端WebService服务的testAdd方法,传入value值
此时eclipse进入debug状态,跳到刚才打断点的51行,
这样就可以像本机一样F6,F5进行跟踪和调试远程程序了
注意:服务器端配置的环境变量JPDA_ADDRESS虽然是端口,但是只是调试器监听端口,但是与tomcat中部署项目运行的端口是不一样的,web项目运行端口是在tomcat_home/conf/server.xml中进行配置的,不要混淆
至此完整的eclipse远程调试步骤已经描述清楚
总结
Standard(SocketAttach)方式进行服务器端监听的优缺点:
先启动远程java程序 然后启动Eclipse远程调试,然后可以正常调试系统
缺点:只有java程序启动后才能进行调试,无法调试java程序的启动过程,如果要全程调试需要使用另外一种方式,我会总结成另一篇文章
优点:可以随时连接到远程java程序进行调试
可上ibm developer 网站上看看http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/
PS:这种调试方式最常用的
转载自http://blog.sina.com.cn/s/blog_86a6730b0101iean.html
- Websphere+Eclipse远程调试
- Eclipse的远程调试
- Eclipse的远程调试
- Eclipse的远程调试
- Websphere+Eclipse远程调试
- Eclipse远程调试方法
- eclipse 远程调试
- Eclipse远程调试
- Eclipse远程调试Tomcat
- eclipse远程调试tomcat
- Eclipse远程调试Tomcat
- Eclipse远程调试Tomcat
- Eclipse远程调试Tomcat
- ECLIPSE远程调试TOMCAT.
- Eclipse远程调试Tomcat
- eclipse远程调试glassfish
- eclipse远程调试websphere
- Eclipse远程调试Tomcat .
- RealVNC 的监听端口
- BZOJ【bzoj2661】[BeiJing wc2012]连连看
- 学习记录——网络层(1)
- Rancher Managed Network实践
- Java程序员从笨鸟到菜鸟之(十四)Html基础积累总结(上)
- Eclipse远程调试
- Codeforces 309B
- Django标准库:django.contrib
- 监听网络变化的广播
- Oracle SQL Developer Data Modeler使用教程
- Windows学习总结(11)——Windows批处理命令编写代码及小程序简介
- 数据挖掘中的概率论与数理统计知识整理
- MVC5 + EF(2)
- Google云盘更改本地同步目录的一种办法