[英]JMX - MBean automated registration on application deployment
我需要有關JMX和Java EE的指導。
我知道(經過幾周的研究),就部署而言,缺少JMX規范。 對於我要尋找的供應商,幾乎沒有特定的實現,但是沒有一個是跨供應商的。 我想自動化MBean的部署並向服務器注冊。 我需要服務器在部署應用程序時加載和注冊我的MBeand,並在取消部署應用程序時將其刪除。
我使用以下工具開發:NetBean 6.7.1,GlassFish 2.1,Java EE 5,EJB 3
更具體地說,我需要一種管理計時器服務運行的方法。 我的應用程序需要運行不同的歸檔代理和批處理報告。 我希望JMX可以給我遠程訪問權限,以創建和管理計時器服務,並使用戶能夠創建自己的日程表。 如果JMX在應用程序部署中自動注冊,則用戶可以立即連接並管理時間表。 另一方面,EJB如何連接/訪問MBean?
提前謝謝了。 加迪。
幾年前,我在Glassfish中研究了JMX和EJB,所以我不記得所有的細節。 但這可能仍然有幫助。
Glassfish專用的JMX 。 Glassfish具有AMX ,可以部署自定義MBean 。 AFAIK,此類bean旨在監視服務器本身,而不是與特定應用程序緊密交互。 可以使此類bean持久化,並且Glassfish將在重新啟動時將其值存儲在某個位置。 也許看看。
注冊和查找 。 您可以隨時使用MBeanPlatform
或MBeanServer
在應用程序中注冊MBean。 看到此鏈接,我不記得確切了。 您還可以查找其他JMX bean並對其進行調用。 查找的名稱有些瘋狂。 您可以在應用程序注冊MBean。 從ServletContextListener
內部開始。
類加載器和部署 。 MBean和EJB實例位於不同的Classloader
。 我認為您需要將帶有MBean實現的.jar
放在Glassfish部署目錄結構中,或者通過管理控制台在類路徑中將.jar
的列表添加到該目錄中。 您可以相對容易地從EJB模塊中管理一個Bean的注冊,但是至少從我的經驗來看,一個Bean無法輕松地訪問EJB。
我設法使用普通的JMX來公開我的EJB應用程序中的統計信息,並且效果相對較好。 但是我不知道進行更多交互是足夠的,例如,在您希望讓EJB根據使用JMX配置的計時器更改其行為的情況下。 我擔心您會遇到這種方法的麻煩。
希望它能有所幫助,盡管我記得的內容還很模糊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.