【问题标题】:Remote Debugging of Openshift Application in Intellij-Idea在 Intellij-Idea 中远程调试 Openshift 应用程序
【发布时间】:2020-01-27 21:11:01
【问题描述】:

我有一个在 openshift 远程集群上运行的 java 应用程序,我想使用 Intellij-Idea 从我的本地计算机调试该应用程序。该应用由另一个远程 jenkins 服务器上的 Jenkinsfile 构建(gradle build、docker build 并推送到 openshift,自动部署)。

Dockerfile 公开端口 9009,因此我的 Intellij 远程调试配置如下所示: Debug Config

在调试配置中使用 localhost 我需要 openshift 端口转发:

oc port-forward my-pod 9009
Forwarding from 127.0.0.1:9009 -> 9009

当我启动调试器时,我在 Intellij 中收到以下错误:

Error running 'DTC Remote Debug':
Unable to open debugger port (localhost:9009): java.net.ConnectException "Connection refused: connect"

同时带有端口转发的终端显示:

Handling connection for 9009
E0927 09:52:33.711817   5996 portforward.go:331] an error occurred forwarding 9009 -> 9009: error forwarding port 9009 to pod ad370...c010, uid : exit status 1: 2019/09/27 03:52:33 socat[129691] E connect(5, AF=2 127.0.0.1:9009, 16): Connection refused

对获取应用程序的 index.html 的 url 进行 Nmap 扫描,得到以下结果:

nmap -sS my-openshift-url
Starting Nmap 7.80 ( https://nmap.org ) at 2019-09-27 15:01 Mitteleuropõische Sommerzeit
Nmap scan report for my-openshift-url (IP-Address)
Host is up (0.0043s latency).
rDNS record for IP-Address: dispatch-my-domain
Not shown: 997 filtered ports
PORT     STATE  SERVICE
80/tcp   open   http
443/tcp  open   https
9009/tcp closed pichat

Nmap done: 1 IP address (1 host up) scanned in 6.10 seconds

我猜问题是关闭的 9009 端口,但我不知道如何在我的 openshift 集群上打开该端口。我已经在 openshift web UI 中设置了几个环境变量(只是为了确定):

DEBUG            TRUE
DEBUG            true
DEBUGGING        TRUE
DEBUGGING        true
JAVA_DEBUG       TRUE
JAVA_DEBUG       true
JAVA_DEBUG_PORT  9009

但我无法让它工作。如果我将端口转发切换到 8080,我可以从浏览器通过 localhost:8080 访问 index.html。我不知道我是否需要更改项目代码中的某些内容(gradle、docker、jenkins 等),或者我是否可以以某种方式在 openshift 中打开已部署服务的端口...

如果有任何不清楚的地方或者我错过了什么,请告诉我。我很高兴收到每条建议。

问候,

克里斯托夫

【问题讨论】:

    标签: java docker intellij-idea openshift remote-debugging


    【解决方案1】:

    在 openshift 中添加以下环境变量就可以了:

    JAVA_TOOL_OPTIONS   -agentlib:jdwp=transport=dt_socket,address=9009,server=y,suspend=n
    

    上面的所有其他环境变量都已过时...

    【讨论】:

      猜你喜欢
      • 2012-05-05
      • 1970-01-01
      • 1970-01-01
      • 2012-07-23
      • 1970-01-01
      • 2016-11-18
      • 1970-01-01
      • 2017-05-13
      • 2012-06-20
      相关资源
      最近更新 更多