【问题标题】:JBoss not responding to valid URLsJBoss 没有响应有效的 URL
【发布时间】:2012-04-04 10:29:24
【问题描述】:

我在 linux 服务器上遇到了 JBoss AS 7 的奇怪行为。当我使用我的应用程序部署战争时,服务器不会响应此应用程序的有效 HTTP 请求。当我尝试获取一个有效的 URL 时,我可以在日志中看到调用了后端函数(例如 DAO 方法),调试日志显示我的 JSF 中的后续标记已呈现,我什至可以看到一条消息 Rendering View index.xml,但是响应永远不会到达客户端。 当我使用不存在的 URL(例如index.asd)时,响应为 404,而当我使用错误的页面名称(例如inswxasd.xhtml)时,响应为 500。因此它仅在有效请求时才会失败。

我尝试远程连接(使用 firefox)和本地连接(使用wget)并且我重现了这个问题。奇怪的是,我部署了我已经使用过的战争,然后它起作用了。

编辑 1:

我刚刚注意到,当我发送请求时,服务器进程占用了 200% 的 CPU。此外,只有一个具有堆栈的应用程序会发生这种情况:Hibernate、Spring、JSF 2.0、Primefaces。

编辑 2:

这里是pastie with jstack output (jstack -l -F <PID>)。所有线程都被阻塞。

此外,我注意到(使用top 并转储JBoss 进程的堆栈)该问题很可能是由名为http--0.0.0.0-8080-1 的线程引起的。有什么想法吗?

【问题讨论】:

  • “服务器进程占用了 200% 的 CPU。” 显然它在某处无限循环运行。很难说在哪里,因为你没有显示任何代码 :) 运行调试器/分析器来确定它。
  • 谢谢,这个问题只出现在服务器上。也许你知道任何用于 JVM 监控(线程、打开文件等)的 linux 控制台工具?
  • 您可以使用 VisualVM 或 JConsole 查看哪些线程正在阻塞。这是我第一次听说这个。
  • 谢谢,但我正在寻找基于控制台的东西(因为我在服务器上没有图形环境)。
  • 很难说它可能是什么。是否可以仅出于测试目的从混合物中删除 Spring?我在 jstack 输出中看到了一些对 ActiveMQ 的引用,但在 AS 7 中,HornetQ 用于消息传递。可能与它无关,只是指出来。

标签: jsf-2 jboss7.x


【解决方案1】:

感谢您的帮助。我将数据库恢复到以前的状态,它开始工作。显然数据中存在导致此无限循环的问题。现在我们需要找到它,但由于它是可重现的,我会管理的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-10-12
    • 2015-08-03
    • 1970-01-01
    • 1970-01-01
    • 2018-08-23
    • 1970-01-01
    • 2022-01-06
    • 1970-01-01
    相关资源
    最近更新 更多