2013-03-02 57 views
1

我正在寻找一种简单直接的方法来将JMX容量添加到应用程序,最好通过http公开。下面是简单的代码片段,我怀疑它应该在8000上运行http服务器。我应该可以通过http://localhost:8000访问它。但是页面无法打开。我找不到应该如何工作的适当文件。JMX Html适配器

jmxtools-1.2.jar包含在classpath中。 Java版本 - 1.6

import javax.management.MBeanServerFactory; 
import javax.management.ObjectName; 
import com.sun.jdmk.comm.HtmlAdaptorServer; 

public class JmxHttpAdapter { 
    public static void main(String[] args) { 
     try { 
      com.sun.jdmk.comm.HtmlAdaptorServer adapter = new HtmlAdaptorServer(8000); 
      MBeanServerFactory.createMBeanServer().registerMBean(adapter, new ObjectName("Adaptor:name=html,port=8000")); 
      adapter.start(); 
      Thread.sleep(100000); 
     } catch (Exception ex) { 
      ex.printStackTrace(); 
     } 
    } 
} 

回答

2

不知道为什么该适配器不工作,但你可以找到在Java Dynamic Management Kit 5.1 Tools Reference Guide的第2章文档。

MX4J也有一个HTTP Adaptor这也是旧的,但你可能会发现它有更好的记录。

你应该看看Jolokia。这是更现代的,仍在积极发展。它是一个基于HTTP的REST代理,有几个安装选项,包括WARJava Agent。尽管有很多工具可以使用它,但这并不能让你获得用户界面。同一个开发人员正在为Jolokia开发一个名为Aji的UI项目,但我不确定现在是什么状态。

下面就来为阿吉内置UI的一些参考:

+1

这是荒谬的,但这个端口一直占线。不知道为什么我没有收到异常。 – user12384512 2013-03-03 17:32:01

+1

啊......这很奇怪。那么适配器现在适合你吗? – Nicholas 2013-03-03 20:10:37

+1

是的,上面的代码工作正常 – user12384512 2013-03-03 20:14:23