2009-08-17 62 views
2

我想監視使用JMX在tomcat下運行的web應用程序。我應該如何使用JMX監視tomcat上的Web應用程序?

我不想只使用內置的Tomcat的JMX實現,我想爲實際的Web應用程序實現一個mbean,這樣我就可以獲得有關應用程序特定設置的信息並對其進行監視。

Web應用程序和在線監控的問題在於,Web應用程序並不總是處於活動狀態,而是「喚醒」來處理服務器的請求,因此,監控它們不僅僅是像使用JMX一樣正常運行的過程。

如何讓Tomcat在後臺運行應用程序(就像Singleton),所以我可以隨時連接它?

有沒有辦法做到這一點是常見的,我不知道?

謝謝!

回答

2

您可以創建一個類來實現ServletContextListener,然後將該偵聽器加載到您的web.xml中。

類:

public class ServerListener implements ServletContextListener { 

    public void contextDestroyed(ServletContextEvent pSce) { 
    } 

    public void contextInitialized(ServletContextEvent pSce) { 
     // TODO Register MBean here. 
    } 
} 

的web.xml文件:

<listener> 
    <listener-class>com.example.ServerListener</listener-class> 
</listener> 
+0

看起來不錯。我現在要試試這個。 – Ben 2009-08-17 12:54:42

+0

我正在嘗試這樣做 - http://oss.wxnet.org/mbeans.html。 希望這會起作用。 – Ben 2009-08-19 15:31:15

3

在應用程序部署時,您的應用程序中需要使用MBean服務器註冊MBean。在部署Web應用程序時,MBean將被公開。我已經使用了Spring Framework JMX support在Tomcat中執行此操作 - 但是有些方法可以在沒有Spring的情況下執行此操作。

相關問題