第 4 章 调试基于 Eclipse Vert.x 的应用
这部分包含有关在本地和远程部署中调试基于 Eclipse Vert.x 的应用的信息。
4.1. 远程调试 复制链接链接已复制到粘贴板!
要远程调试应用,您必须首先将其配置为在调试模式中启动,然后为它附加一个调试器。
4.1.1. 以调试模式在本地启动应用程序 复制链接链接已复制到粘贴板!
调试基于 Maven 的项目的方法之一是在指定调试端口的同时手动启动应用,然后将远程调试器连接到该端口。此方法至少适用于以下应用程序部署:
-
使用
mvn vertx:debug目标启动应用程序时。这将启动启用调试的应用程序。
前提条件
- 基于 Maven 的应用程序
流程
- 在控制台中,导航到您的应用程序的目录。
启动应用程序并使用
-Ddebug.port参数指定 debug 端口:mvn vertx:debug -Ddebug.port=$PORT_NUMBER
$ mvn vertx:debug -Ddebug.port=$PORT_NUMBERCopy to Clipboard Copied! Toggle word wrap Toggle overflow 这里的
$PORT_NUMBER是您选择的未使用端口号。记住此号码用于远程调试器配置。使用
-Ddebug.suspend=true参数使应用程序等待等待调试器启动。
4.1.2. 在 OpenShift 中启动应用程序处于调试模式 复制链接链接已复制到粘贴板!
要在 OpenShift 上远程调试基于 Eclipse Vert.x 的应用,您必须将容器内的 JAVA_DEBUG 环境变量设置为 true,并配置端口转发,以便您可以从远程调试程序连接到您的应用。
前提条件
- 在 OpenShift 上运行的应用。
-
已安装
oc二进制文件。 -
在目标 OpenShift 环境中执行
oc port-forward命令的功能。
流程
使用
oc命令,列出可用的部署配置:oc get dc
$ oc get dcCopy to Clipboard Copied! Toggle word wrap Toggle overflow 将应用的部署配置中的
JAVA_DEBUG环境变量设置为true,它将 JVM 配置为打开端口号5005以进行调试。例如:oc set env dc/MY_APP_NAME JAVA_DEBUG=true
$ oc set env dc/MY_APP_NAME JAVA_DEBUG=trueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 如果应用程序没有设置为在配置更改时自动重新部署,请重新部署应用程序。例如:
oc rollout latest dc/MY_APP_NAME
$ oc rollout latest dc/MY_APP_NAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 配置本地机器到应用程序 pod 的端口转发:
列出当前运行的 pod,并找到包含您的应用程序的 pod:
oc get pod NAME READY STATUS RESTARTS AGE MY_APP_NAME-3-1xrsp 0/1 Running 0 6s ...
$ oc get pod NAME READY STATUS RESTARTS AGE MY_APP_NAME-3-1xrsp 0/1 Running 0 6s ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置端口转发:
oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5005
$ oc port-forward MY_APP_NAME-3-1xrsp $LOCAL_PORT_NUMBER:5005Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在这里,
$LOCAL_PORT_NUMBER是本地机器上您选择的未使用端口号。记住此号码用于远程调试器配置。
完成调试后,取消设置应用程序 pod 中的
JAVA_DEBUG环境变量。例如:oc set env dc/MY_APP_NAME JAVA_DEBUG-
$ oc set env dc/MY_APP_NAME JAVA_DEBUG-Copy to Clipboard Copied! Toggle word wrap Toggle overflow
其他资源
如果要从默认值更改 debug 端口,则可设置 JAVA_DEBUG_PORT 环境变量,即 5005。
4.1.3. 将远程调试器附加到应用程序 复制链接链接已复制到粘贴板!
当应用程序被配置为调试时,为它附加您选择的远程调试程序。在本指南中,涵盖了 Red Hat CodeReady Studio,但在使用其他程序时的步骤类似。
前提条件
- 在本地或 OpenShift 上运行的应用,并配置了调试。
- 应用程序侦听调试的端口号。
- Red Hat CodeReady Studio installed on your machine.您可以从 Red Hat CodeReady Studio 下载页面 下载。
流程
- 启动 Red Hat CodeReady Studio。
为应用程序创建新调试配置:
- 点 Run→Debug Configuration。
- 在配置列表中,双击 Remote Java 应用。这会创建一个新的远程调试配置。
- 在 Name 字段中输入适合配置的名称。
- 在 Project 字段中输入应用程序目录的路径。为方便起见,您可以使用 Browse… 按钮。
- 将 Connection Type 字段设置为 Standard (Socket Attach) (如果尚未连接)。
- 将 Port 字段设置为应用程序侦听调试的端口号。
- 点 应用。
点 Debug Configuration 窗口中的 Debug 按钮开始调试。
要在首次时间后快速启动您的调试配置,请点击 Run→Debug History,并从列表中选择配置。
其他资源
在红帽知识库中使用 JBoss Developer Studio 调试 OpenShift Java 应用。
Red Hat CodeReady Studio 之前称为 JBoss Developer Studio。
- OpenShift 博客中的 调试 Java 应用 OpenShift 和 Kubernetes 文章.