使用Eclipse配合JDWP对服务器上部署的代码进行调试

今天遇到了一个问题:同样的代码,在服务器上跑的时候会报空指针异常,但是在本地是没有问题的,看服务器上打印的日志只能看到异常信息,不能准确地定位到出问题的代码,于是就搜索了一下远程调试。结果还真的可以在eclipse中对服务器上的代码进行远程调试

有一个叫做JDWP的协议,支持对java虚拟机进行远程调试

JDWP的全称是Java Debug Wire Protocol,它定义了调试器(debugger)和被调试的 Java 虚拟机(target vm)之间的通信协议。其核心API已经包含在JDK中。

使用的方法是在JVM的启动参数上加上如下的东西:-Xdebug -server -Xrunjdwp:transport=dt_socket,server=y,address=8899 (其中的8899是我自己定义的端口号,可以根据需要改成其他的端口号)

在eclipse中的设置:点击 run-->Debug Configurations  在左边的 Remote Java Application 选项中右键点击,选择 NEW(如下图所示)

在project中选择待调试的项目,Host中填上服务器的IP地址,Port中是我们在服务器上配置的JVM启动参数里的端口号

启动服务器上的项目,服务器会等待调试器进行连接(此时项目是在等待状态,并没有启动),此时在eclipse中(图片中的位置)点击Debug按钮,服务器上的项目开始启动,这样就可以在Eclipse中进行远程调试了

更详细的信息可以参考IBM developWorks上的这篇文章: http://www.ibm.com/developerworks/cn/opensource/os-eclipse-javadebug/

时间: 2024-08-26 20:20:49

使用Eclipse配合JDWP对服务器上部署的代码进行调试的相关文章

linux的tomcat服务器上部署项目的方法

在tomcat服务器上部署项目的前提,是我们已经准备好了tomcat服务器.在CentOs环境下部署JavaWeb环境,部署tomcat服务器在前面的文章中已经总结过了,可以参考以前文章. 一  tomcat服务器修改端口 tomcat服务器配置好以后,默认是8080端口,为了方便访问,我们将端口修改为80端口.比如, tomcat安装在/usr/local/tomcat目录下,利用命令 #cd /usr/local/tomcat/conf #ls 可以tomcat的conf目录下的文件,端口定

在一台服务器上部署多个Tomcat

在一台服务器上配置多个Tomcat的方法: 这几天由于在研究OGSA-DQP,但是其网站上只提供了在Linux下的安装文档,而且需要在一天服务器上配置两个Tomcat,但是我一直没有弄懂怎么在Windows下实现. 如果要在一台服务器上配置多个Tomcat,主要就是要避免Tomcat服务器的端口冲突的问题.只需要修改CATALINA_HOME\conf\server.xml中的启动端口和连接端口就OK了! 下面我们把配置的详细过程写在下面,以供参考:(此例以配置两个Tomcat为例) 1. 下载

在Tomcat服务器上部署web应用程序常见的方法

一般在tomcat服务器上部署 java web应用程序有两种方式:静态和动态 一.静态部署 静态部署即在启动tomcat服务器之前部署好我们的web应用程序,只有当tomcat服务器启用后,我们的web应用程序才能被访问) 1.利用tomcat自动部署 将web应用程序拷贝到/usr/local/tomcat/webapps/下,然后重启tomcat服务器即可,此时由于配置文件配置了autoDeploy="true,tomcat启动此将自动加载该web应用 2.修改server.xml文件部署

PHP--腾讯云服务器上部署LNMP环境

本文参考 云服务器上部署Laravel的实例教程 腾讯云 创建 Laravel5.4 项目 阿里云服务器部署php的laravel项目,在阿里云买ECS 搭建 Linux+Nginx+Mysql+PHP环境的 前言 最近在学Laravel,同参考文章,本来只是在虚拟机上运行,但现在正好因为手上有腾讯云的服务器,所以就直接拿来部署Laravel. 首先做下准备工作 sudo apt update 下面不是必要的,但是如果有开着apache2服务器的话,是必须做的 sudo service apac

总结之提交代码并部署到服务器上,为什么代码却没有更新?

问题描述: 遇到过几次这种情况:开发将代码提交之后,通过打包部署,发现部署到服务器上的代码不是最新的,还是修改之前的老代码. 打包部署流程背景说明: gitlab-->jenkins服务器打jar包-->将打好的jar包过滤并推送到服务器A上build镜像-->将镜像推送到harbor仓库-->部署容器到服务器 1.代码没有提交成功 这个不用多说,遇到过几次. 2.jenkins上的缓存没有清除 例如test服务的构建包的缓存目录就是在jenkins服务器的~/.m2/reposi

在云服务器上部署自己的SpringBoot项目

在云服务器上部署自己的SpringBoot项目 因为正在开发一个个人的微信小程序项目,所以开始学习如何部署SpringBoot服务器,之前完全没有接触过部署服务器相关,只能从0开始摸索,网上各种文章杂乱得很,而且大多都语焉不详,完全跟不上作者的脑回路,所以摸索得非常痛苦! 所幸最后成功了,记录一下完整的步骤,造福后来的跟我一样的小白们. 部署步骤 云服务器的购买和配置 安装JDK 安装Tomcat 安装svn 安装Maven 打包SpringBoot项目 设置安全组 安装MySQL 服务器的代码

在阿里云ECS服务器上部署Java环境实现域名访问

事实证明,善于利用网络搜索是一项非常重要的能力. 在很多时候,借用别人的经验和成果能够帮助我们拓宽思维和眼界,以高效率解决问题. 一味地自己埋头钻研,很可能会局限在角落里,甚至走进死胡同.从来,努力都不是要求自行其是.在绝大多时候,都是用成果来衡量努力的程度的,而善于借用现成的结果可以帮助我们解决问题. 今天找到了一篇很好的文章,讲述了如何在阿里云ECS服务器上部署Java环境实现域名访问. 链接 在之前我已经购买了域名和空间,并配置了映射,导入wordprss建立个人博客网站,实现了在线编辑和

在Windows Server 2008上部署SVN代码管理总结

这段时间在公司开发Flex程序,所以使用TortoiseSVN作为团队代码管理器,今天在公司服务器上部署SVN服务器,并实验成功,总结如下: 服务器环境: 操作系统:Windows Server 2008: SVN服务器端程序:VisualSVN Server 2.1.5:(http://www.visualsvn.com/ ) 客户端环境: 操作系统:Windows 7 32Bit: SVN客户端程序:TortoiseSVN-1.6.12.20536-win32-svn-1.6.15:(htt

零基础在Linux服务器上部署javaweb项目

本教程使用的工具下载链接:http://pan.baidu.com/s/1sl1qz2P 密码:43pj 一.安装JDK 1.首先要查看服务器的系统版本,是32位还是64位 [plain] view plain copy #getconf LONG_BIT 64 2.下载64位版本的jdk 下载地址:http://www.Oracle.com/technetwork/Java/javase/downloads/jdk8-downloads-2133151.html 版本:jdk-8u91-Lin