gpt4 book ai didi

java - Intellij Debug Docker 容器不断给我 IO 异常握手失败

转载 作者:行者123 更新时间:2023-12-04 16:26:24 25 4
gpt4 key购买 nike

我正在尝试在 Intellij v2020.1 中设置远程调试器,但不断收到以下错误:
无法打开调试器端口(本地主机:5005):java.io.IOException“握手失败 - 连接过早关闭”
在我的 docker compose 文件中,我已将端口 5005 挂载到 5005
在我的 docker 文件中,我有:EXPOSE 5005 ENTRYPOINT ["/bin/bash", "runme.sh"]在我的 shell 脚本中,我有:/opt/java/openjdk/bin/java -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 -jar mine.jar当我执行 docker ps 时,我可以看到以下内容:0.0.0.0:5005->5005/tcp, 0.0.0.0:8111->8111/tcp在 IntelliJ 中,我将远程调试器从端口 5005 设置到容器端口 5005,添加到模块 claspath 和启动前步骤中,添加到我的撰写文件中。
该服务启动正常,但无法连接到调试器,有什么想法吗?

最佳答案

将此行放在我的 Dockerfile 中为我解决了这个问题:

ENV JAVA_TOOL_OPTIONS -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005
这里的关键部分是“address=*:5005”,而不仅仅是“address=5005”。显然,自 Java 9 以来的一些安全性变化需要 *: 在端口之前。
编辑:我看到您使用的是 Java 8。但也许将 -XDebug 添加到选项中,也可以解决问题:
ENV JAVA_TOOL_OPTIONS -Xdebug -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=*:5005

关于java - Intellij Debug Docker 容器不断给我 IO 异常握手失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62943487/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com