如何简化JMX

3

我需要将大约60个操作暴露给JMX,这些操作分布在30个不同的类中。使用DynamicMBean实现有点麻烦。我正在寻找一种快速而优雅的方法来实现。

我知道Spring有一种很好的注解方式,但是我在这个项目中没有使用Spring。


1
有什么阻止你将Spring引入项目中的吗? - Noel M
1
这是一个很长的故事,但我不能。 - fatnjazzy
3个回答

2
请看我的SimpleJmx Java包,它使用注解轻松发布bean通过JMX。它还有客户端代码。
快速代码示例:
// you can also use the platform mbean server
JmxServer jmxServer = new JmxServer(8000);
jmxServer.start();
// register our lookupCache object defined below
jmxServer.register(lookupCache);
...
jmxServer.stop();

以下是定义bean的方法。

@JmxResource(domainName = "j256", description = "Lookup cache")
public class LookupCache {
    @JmxAttributeField(description = "Number of hits in the cache")
    private int hitCount;
    ...

    @JmxOperation(description = "Flush the cache")
    public void flushCache() {
       ...
    }
}

欢迎提供反馈。


1
反馈:将项目迁移到Github :) - Antony Stubbs

1
如果只是一组简单的操作,您可以使用Clojure contrib提供的JMX支持: Clojure Contrib Clojure编译为Java,因此与当前项目集成不会有太多问题。

0

你看过@MXBean注解吗?它可能是你想要的,而且它是Java 6的一部分。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接