【发布时间】:2022-01-19 00:13:49
【问题描述】:
在尝试调试部署到码头 (9.4) 服务器的应用程序时,我遇到了一个非常奇怪的错误。我按照这里的说明进行操作:https://www.eclipse.org/jetty/documentation/jetty-9/index.html#advanced-debugging 用于使用 eclipse 设置远程调试。我将调试参数添加到我的启动脚本中,如果我在码头上进行状态调用,我可以看到它们被列出:
RUN_CMD = /opt/java/8/bin/java -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=9999 -Djetty.home=/opt/ jetty/9.4 -Djetty.base=/opt/web/jetty -Djava.io.tmpdir=/opt/jetty/temp -jar /opt/jetty/9.4/start.jar jetty.http.host=我的 ip adr jetty.http.port=我的端口 jetty.spdyPort=我的 spd 端口 jetty.state=/opt/web/jetty/jetty.state jetty-开始.xml
如果我运行我的启动脚本,它将暂停并等待我启动 Eclipse 调试器,然后再继续。如果我在浏览器中导航到我的应用程序,我可以从日志输出中看到我的方法正在运行。但是,这些方法中的断点永远不会被命中,执行也永远不会暂停。
我已经尝试了所有我能想到的东西,但我只是看不出我在这里做错了什么。我以前做过这个并且它有效,所以我只能假设这是关于我的应用程序部署到码头的方式。任何建议将不胜感激。
更新: 我已经缩小了我认为是问题根源的范围,但我仍然不知道如何解决它。我最近将 jetty 的日志记录模块从 log4j 切换到 logback。一旦我禁用了 logback 模块,调试就会再次起作用。不幸的是,简单地禁用日志记录并不是一个长期的解决方案。我仍然需要一些能够调试和启用日志记录的方法。
【问题讨论】:
-
你能在方法本身上创建一个中断(在面板中右键单击它)吗?
-
自上次工作以来,你有什么改变?
-
@ThorbjørnRavnAndersen 我尝试添加一个方法断点,但结果是一样的。我能想到的唯一重大变化是将日志记录实现从 log4j 切换到 logback,但我不明白为什么这会干扰 eclipse 断点。
-
只是现有断点的问题,还是在正确连接后添加的断点停止?
标签: java eclipse debugging logback jetty-9