【发布时间】:2016-03-15 03:46:09
【问题描述】:
今天我们在 JBoss EAP alpha 版本的 Java EE 项目中遇到执行被阻塞(“阻塞” - 这应该是更专业的词,但此时我无法弄清楚)的情况,一段时间后没有更多控制台消息。
最后我们发现我的一个同事错误地将 System.out.println() 用于记录在 for 循环中,而不是 slf4j 记录器(循环迭代数百次)。
用 slf4j 记录器的 log.xxxxx() 替换 System.out.println() 后一切正常。
我无法理解System.out.println() 的这个奇怪问题。
此外,应用程序服务器正在运行,但无法处理任何请求。
谁能帮我理解这个问题以及为什么 JBoss 无法处理其他请求。
【问题讨论】:
-
您是否能够重现该错误,即把它放回
System.out.println()看看会发生什么。 -
是的,从 sysout 替换 slf4j 记录器同样痛苦。我们挣扎了 2-3 个小时才发现问题。
-
您是否尝试附加远程调试器以确认您卡在该行上?
-
不,因为情况不允许我从 Eclipse 进行调试。我必须在 jboss 中部署战争。
-
即使您的 Web 应用程序未在“在 Eclipse 中”运行,您仍然可以“从”Eclipse 调试。您将其部署到 JBOSS 并附加 remote 调试器。查看 Eclipse - JBOSS 远程调试说明
标签: java jakarta-ee logging system.out