2012-01-17 119 views
4

我想託管一個tomcat服務器,它將託管3個Web應用程序。我想獲得我的服務器處理的請求總數(對於3個Web應用程序中的任何一個)。是否有任何日誌可以查看我的服務器處理的請求總數(包括HTTP 404請求)如何找到tomcat服務器處理的請求總數?

注意:我可以計算每個應用程序處理的總請求數,並獲取處理的請求總數通過我的服務器,但在tomcat部署的應用程序是第三方,我不能做任何改變。

基本上,我建立Tomcat服務器監控應用程序,我需要提供應用程序服務的總要求,

而且,我首先想到的是爲忽略在servlet的HttpServletRequest的類的構造函數-api.jar並放置一個靜態計數器。由於每個請求都被映射到HTTPServletRequest對象,我想它會完成這項工作。但是,重寫HTTPServletRequest是否是一個好主意,或者是否有任何現有的解決方案可用於此?

+0

你可以寫一個很簡單的[過濾](http://www.oracle.com/technetwork/java/filters-137243.html),但它會必須添加到每個上下文中,並且結果將被獨立計算,我想。 – 2012-01-17 13:53:24

回答

1

如果你選擇覆蓋HttpServletRequest的類不只是添加靜態計數器,這將導致你的計數器每個服務器停機/ JVM重載時間自行復位。

我覺得這可能是一個更好的選擇,要麼從數據庫中增加或保存在一個文件中的值各一次。這樣,即使服務器出現問題,您也不會失去計數,並且必須重新啓動它。

這是假設還沒有一個Apache擴展已經達到了這個目標,並且你想修補HTTPServletRequest類。

+0

假設沒有任何apache擴展,你的答案很棒.. + 1 – 2012-01-17 15:27:19

1

您可以使用稱爲Request Dumper Filter的特殊過濾器來實現此目的。

根據官方的Tomcat文檔:

The following entries in a web application's web.xml would enable the Request Dumper 
filter for all requests for that web application. If the entries were added to 
CATALINA_BASE/conf/web.xml, the Request Dumper Filter would be enabled for all web 
applications. 
相關問題