在Jetty下使用Idea远程调试项目时,提示为:timeout during handshake

Posted

技术标签:

【中文标题】在Jetty下使用Idea远程调试项目时,提示为:timeout during handshake【英文标题】:When using Idea to remotely debug a project under Jetty, the prompt is :timeout during handshake 【发布时间】:2022-01-21 19:11:21 【问题描述】:

我在IDEA中使用Remote JVM Debug在服务器上远程调试我的jetty项目,提示如下:timeout during handshake

2021-12-20T03:14:04.816059981Z Listening for transport dt_socket at address: 16005
2021-12-20T03:14:05.755978464Z 2021-12-20 11:14:05.752:INFO::main: Logging initialized @1042ms to org.eclipse.jetty.util.log.StdErrLog
2021-12-20T03:14:05.866523012Z 2021-12-20 11:14:05.865:INFO:oeju.TypeUtil:main: JVM Runtime does not support Modules
2021-12-20T03:14:06.184914262Z 2021-12-20 11:14:06.184:INFO::main: Console stderr/stdout captured to /hostfiles/logs/2021_12_20.jetty.log
2021-12-20T03:20:02.669027944Z Debugger failed to attach: timeout during handshake

启动配置如下:

java -server \
     -Xmx3550m \
     -Xms3550m \
     -Xmn1256m \
     -Xss228k \
     -Xdebug \
     -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=16005 \
     -XX:SurvivorRatio=6 \
     -XX:MaxMetaspaceSize=256m \
     -XX:ParallelGCThreads=8 \
     -XX:MaxTenuringThreshold=0 \
     -XX:+UseConcMarkSweepGC \
     -jar $JETTY_HOME/start.jar \
     jetty.base=/hostfiles

Jetty在Docker中,使用jdk 1.8,预设参数如下:

【问题讨论】:

你用什么做调试器?您在调试器端使用了哪些 jwdp 连接选项? 我投票结束这个问题,因为它不是英文的 我认为语言不会影响知识的分享,但我已将其更新为英文,以便大家查看。 如果您的 $jetty.base 配置使用需要分叉 JVM 的东西,那么这种简单的方法是不可能的。见github.com/eclipse/jetty.project/issues/7299 这是一个很好的答案。谢谢你。 @Joakim Erdfelt 【参考方案1】:

目前的问题是由于Jetty中的fork JVM没有高效配置造成的。

见https://github.com/eclipse/jetty.project/issues/7299

【讨论】:

以上是关于在Jetty下使用Idea远程调试项目时,提示为:timeout during handshake的主要内容,如果未能解决你的问题,请参考以下文章

IDEA下使用Jetty进行Debug模式调试

Idea添加Jetty时提示JMX module is not included

Jetty启动项目失败?两个命令解决address already in use问题

LINUX下IDEA等工具调试项目时提示:Unable to open debugger port

otter代码在IDEA远程DEBUG方法

idea添加Jetty时提示JMX module is not included