2012-04-04 18 views
1

我的Linux服務器上遇到的JBoss的奇怪行爲7。當我用我的應用程序部署戰爭時,服務器不響應此應用程序的有效HTTP請求。當我試圖得到一個有效的URL,我可以在日誌中看到,該後端功能(如DAO方法)被調用,調試日誌顯示,在我的JSF隨後的標籤渲染,我甚至可以看到一條消息Rendering View index.xml,但響應從來沒有到達客戶端。 當我使用一個不存在的URL(例如index.asd)響應是404,當我使用了錯誤的頁面名稱(例如inswxasd.xhtml)的響應是500因此,只有有效的請求失敗。JBoss的不響應有效的URL

我嘗試都遠程(使用火狐)和局部(以wget)連接和我再現的問題。奇怪的是,我部署了我已經使用過的戰爭,然後它發揮了作用。

編輯1:

我剛剛注意到,當我發送的請求時,服務器過程需要CPU的200%。此外,它僅適用於一個具有堆棧的應用程序:Hibernate,Spring,JSF 2.0,Primefaces。

編輯2:

這裏是pastie with jstack outputjstack -l -F <PID>)。所有線程都被阻塞。

此外,我注意到(使用top和轉儲堆棧的JBoss進程),該問題很可能是由一個稱爲http--0.0.0.0-8080-1的線程引起的。有任何想法嗎?

+1

*「的服務器過程需要CPU的200%。」 *很顯然它是一個無限循環的地方運行。很難說,因爲你沒有顯示任何代碼:)運行一個調試器/分析器來指明它。 – BalusC 2012-04-04 15:06:28

+0

謝謝,問題只發生在服務器上。也許你知道任何用於JVM監視的Linux控制檯工具(線程,打開文件等)? – mrzasa 2012-04-04 15:16:53

+0

您可以使用VisualVM或JConsole來查看哪些線程被阻塞。這是我聽說過的第一個。 – 2012-04-04 16:53:28

回答

0

感謝您的幫助。我將數據庫恢復到之前的狀態,並開始工作。顯然,導致這種無限循環的數據存在問題。現在我們需要找到它,但由於它是可重複的,我會管理。