我在linux服务器上遇到了JBoss AS 7的奇怪行为。当我使用我的应用程序部署war时,服务器不会响应此应用程序的有效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
的线程引起的。有什么想法吗?
答案 0 :(得分:0)
感谢您的帮助。我将数据库恢复到以前的状态,它开始工作。显然,数据中存在导致此无限循环的问题。现在我们需要找到它,但由于它是可重现的,我会管理。