2009-08-20 114 views
1

我已经通过this页面的过程公开了Web应用程序的JMX接口。如何管理JMX Web应用程序

我已经设法查看Tomcat JMX代理的公开接口,但是当我加载JConsole并查找公开的mbean接口时,找不到与所公开的属性和操作相关的任何内容。

对于web应用程序,jresole没有具体条目,所以我想它可能在TOMCAT jmx条目下。不是。 (记住,我确实设法在tomcat jmx代理页面上看到它)。

如何在本地管理我的Web应用程序?为什么JConsole不显示它?

+0

哪个版本的Tomcat,以及哪个版本的Java? – skaffman 2009-08-20 14:14:06

+0

java 1.6与tomcat 6.0 – Ben 2009-08-21 17:41:49

+0

我设法做到了这一点。我正在写一篇关于它的文章,并会尽快发布。 – Ben 2009-09-01 12:33:32

回答

3

我已经成功做了几个基本步骤来解决这个问题 -

  1. 在web应用上下文侦听contextInitialized方法,我实例化一个单例类,将运行并实现MBean(该servlet本身无法实现一个mbean,因为它只是醒来接受来自服务器的请求)。
  2. servlet通知我们要监控的每个操作的单例,单例是通过jmx实际报告的单例。
  3. 在我与此命令MBean服务器中注册的单身:

    ManagementFactory.getPlatformMBeanServer()registerMBean(此,姓名);

那就是它。 (在坚果壳里)

+0

当您必须部署到集群时,您的设计如何工作(因为您对单例有依赖关系...)? – 2010-05-13 08:23:14

+0

好的呼叫。实际上,我的同事正在努力使这个解决方案成为一个集群友好的解决方案我有信息时会更新。 – Ben 2010-05-16 08:10:42

相关问题