基于华为开发者空间的云端 JVM 服务远程调试:CodeArts IDE 配置指南

1 概述
1.1 背景介绍
在我们线上遇到问题的时候,可能要在出现问题的地方增加日志,重新进行编译打包部署,然后再对问题部分输出的日志进行问题分析,如果日志有遗漏,还需要重复这个流程。本案例为大家带来一个新的解决方式,通过 CodeArts IDE 的远程调试功能,使用调试器监听传入连接来进行远程 JVM 服务的 DEBUG 调试。
1.2 适用对象
企业
个人开发者
高校学生
1.3 案例时间
本案例总时长预计 60 分钟。
1.4 案例流程

说明:
① 登录云主机,拉取代码,启动 CodeArts IDE 终端 Terminal;② 启动鲲鹏云服务器,部署服务至鲲鹏云服务器;③ 配置 CodeArts IDE 远程连接鲲鹏云主机,使用 CodeArts IDE 调试鲲鹏云主机上部署的服务。
1.5 资源总览
本案例预计花费总计 0 元。
体验完整案例请点这里👉️👉️👉️使用云主机CodeArts IDE进行远程JVM服务调试
2 操作步骤
2.1 拉取代码到 CodeArts IDE
进入云主机后,点击下方菜单的“Terminal Emulator”按钮,打开命令行工具。


在命令行中输入命令“cd ~”跳转到用户家目录下。

在命令行中输入下面 git 命令拉取代码。

使用 CodeArts IDE 打开下载代码的文件夹。


等待 CodeArts IDE 右下角工程模型自动同步成功。

点击“终端”,开启 CodeArts IDE 终端。

2.2 部署服务至鲲鹏云主机
在终端输入自动部署命令,命令如下:
命令的参数说明:
password:password 关键字后设置的是鲲鹏服务器的 root 用户密码,命令中给出的默认为 abcd1234@,开发者可以替换成自定义密码(至少 8 个字符)。
time:time 关键字后面设置的为鲲鹏服务器的可用时间,单位为秒,至少 600 秒。当前实验预估需要 40 分钟,为了保证时间充足,在命令中申请的时间为 60 分钟,即 3600 秒。
记录下自动部署后生成的弹性公网 IP 地址。
点击 Maven 下的 package 编译打包当前项目。
将当前包传输至鲲鹏云远程云主机上。在终端输入传输命令,命令如下:
IP 为第 2 步记录的弹性 IP。
这个命令的作用是将第 3 步构建的位于当前目录 target 目录下的 E-SpringBootWebDemo-Java.jar 包传输至鲲鹏云远程云主机上的/root 目录下。
遇到类似下图需要确认的情况输入 yes 确认。

输入密码请输入第一步申请时设置的密码,默认为 abcd1234@

远程登录鲲鹏云主机
IP 为第 2 步记录的弹性 IP。
输入密码请输入第一步申请时设置的密码,默认为 abcd1234@。


执行命令部署服务,执行下面命令部署服务。
参数说明:
nohup : 后台运行 SpringBoot 进程
-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5210 :SpringBoot 服务端添加远程通道这里我们使用 5210 端口作为服务端开放的端口。后面我们要使用这个端口作为 CodeArts IDE 调试端口。
-Dserver.port : SpringBoot 默认启动端口为 8080,这里配置为 8201 避免和鲲鹏云上端口冲突。

输入下面命令持续查看部署日志:

2.3 配置 CodeArts IDE 远程连接鲲鹏云主机
点击“编辑配置”。

添加 Remote Debug(Attach to remote JVM),HOST 为 2.2 第二步记录的弹性 IP,PORT 为上一步 address=5210 填写的 5210 端口。


点击启动,CodeArts IDE 下方出现橘黄色标识即为成功。

2.4 用 CodeArts IDE 调试鲲鹏云主机上部署的服务
将鼠标挪动到对应代码行的编码前方,会浮现红色断点,单击红色断点,在代码中打断点。


打开浏览器输入:http://IP:8201/helloword/ceshi。其中IP替换成自己的服务器IP地址。

进入 CodeArts IDE 查看,已经进入调试模式,可以将鼠标放置到变量上查看,前端浏览器访问参数,可以通过右上快捷调试进行调试。


至此,本案例内容全部完成。
注: 调试必须保证本地和线上运行的 SpringBoot 代码一致才能成功。
评论